summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/zfs/arc.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/fs/zfs/arc.c')
-rw-r--r--usr/src/uts/common/fs/zfs/arc.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/usr/src/uts/common/fs/zfs/arc.c b/usr/src/uts/common/fs/zfs/arc.c
index b23da4d668..e8d3ef0f40 100644
--- a/usr/src/uts/common/fs/zfs/arc.c
+++ b/usr/src/uts/common/fs/zfs/arc.c
@@ -2363,6 +2363,7 @@ arc_release(arc_buf_t *buf, void *tag)
while (*bufp != buf)
bufp = &(*bufp)->b_next;
*bufp = (*bufp)->b_next;
+ buf->b_next = NULL;
ASSERT3U(hdr->b_state->arcs_size, >=, hdr->b_size);
atomic_add_64(&hdr->b_state->arcs_size, -hdr->b_size);
@@ -2385,9 +2386,8 @@ arc_release(arc_buf_t *buf, void *tag)
nhdr->b_flags = 0;
nhdr->b_datacnt = 1;
nhdr->b_freeze_cksum = NULL;
- buf->b_hdr = nhdr;
- buf->b_next = NULL;
(void) refcount_add(&nhdr->b_refcnt, tag);
+ buf->b_hdr = nhdr;
atomic_add_64(&arc_anon->arcs_size, blksz);
hdr = nhdr;