summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/fs/zfs/arc.c
diff options
context:
space:
mode:
authormaybee <none@none>2007-03-26 12:01:20 -0700
committermaybee <none@none>2007-03-26 12:01:20 -0700
commitaf2c4821c0a23e873f2a63bca4145080aa2183e3 (patch)
tree0d586a6ce404e8dbdb86199692778a2e9babcae6 /usr/src/uts/common/fs/zfs/arc.c
parent1e7ef456443516ebe1cb6722f4133b6f1f165284 (diff)
downloadillumos-gate-af2c4821c0a23e873f2a63bca4145080aa2183e3.tar.gz
6437750 panic: db->db_buf==0||arc_referenced(db->db_buf), file: dbuf.c,line:1539
6466866 assertion failed: dlen <= zp->z_blksz (0x188b4 <= 0x13200), zfs_vnops.c, line: 884 6512661 unowned mutex panic during stress test 6524889 Hang adding zvol-based devices to a pool or creating a pool from zvols 6531759 zfs_rmdir() can return EEXIST on an empty directory when spotlight is messing with it 6532056 missing dmu_tx_commit() in zfs_write() eventually hangs zfs
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;