]> granicus.if.org Git - zfs/commitdiff
Fix zstream_t incorrect type
authorShen Yan <shenyanxxxy@qq.com>
Tue, 10 Dec 2013 06:58:53 +0000 (14:58 +0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 10 Dec 2013 18:09:27 +0000 (10:09 -0800)
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 <behlendorf1@llnl.gov>
Closes #1946

include/sys/dmu_zfetch.h

index 442ab1599f42ca3ee69209a55ac9977b72953e46..38ed1d8721290db19719d2fd6ad0fe00e178db81 100644 (file)
@@ -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 {