From: Shen Yan Date: Tue, 10 Dec 2013 06:58:53 +0000 (+0800) Subject: Fix zstream_t incorrect type X-Git-Tag: zfs-0.6.3~148 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5cb65efe2c3d4aaa77a5881be364c443c859bbc8;p=zfs Fix zstream_t incorrect type The DMU zfetch code organizes streams with lists not avl trees. A avl_node_t was mistakenly used for a list_node_t in the zstream_t type. This is incorrect (but harmless) and when unnoticed because: 1) The list functions explicitly cast the value preventing a warning, 2) sizeof(avl_node_t) >= sizeof(list_node_t) so no overrun occurs, and 3) The calculated offset is the same regardless of the type. Signed-off-by: Brian Behlendorf Closes #1946 --- diff --git a/include/sys/dmu_zfetch.h b/include/sys/dmu_zfetch.h index 442ab1599..38ed1d872 100644 --- a/include/sys/dmu_zfetch.h +++ b/include/sys/dmu_zfetch.h @@ -50,7 +50,7 @@ typedef struct zstream { uint64_t zst_cap; /* prefetch limit (cap), in blocks */ kmutex_t zst_lock; /* protects stream */ clock_t zst_last; /* lbolt of last prefetch */ - avl_node_t zst_node; /* embed avl node here */ + list_node_t zst_node; /* next zstream here */ } zstream_t; typedef struct zfetch {