diff options
author | George Wilson <[email protected]> | 2013-07-02 13:26:24 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2013-07-02 13:34:31 -0700 |
commit | 294f68063b49c06d3118d51016811063e69cf97a (patch) | |
tree | 2450bfc2356c54752214fb11fad14766c6c1ddb1 /cmd/zdb/zdb.c | |
parent | 96b89346c074516a9bb130907646814208035ca8 (diff) |
Illumos #3498 panic in arc_read()
3498 panic in arc_read(): !refcount_is_zero(&pbuf->b_hdr->b_refcnt)
Reviewed by: Adam Leventhal <[email protected]>
Reviewed by: Matthew Ahrens <[email protected]>
Approved by: Richard Lowe <[email protected]>
References:
illumos/illumos-gate@1b912ec7100c10e7243bf0879af0fe580e08c73d
https://www.illumos.org/issues/3498
Ported-by: Brian Behlendorf <[email protected]>
Closes #1249
Diffstat (limited to 'cmd/zdb/zdb.c')
-rw-r--r-- | cmd/zdb/zdb.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/cmd/zdb/zdb.c b/cmd/zdb/zdb.c index 75d4198ba..936974b5a 100644 --- a/cmd/zdb/zdb.c +++ b/cmd/zdb/zdb.c @@ -996,7 +996,7 @@ visit_indirect(spa_t *spa, const dnode_phys_t *dnp, arc_buf_t *buf; uint64_t fill = 0; - err = arc_read_nolock(NULL, spa, bp, arc_getbuf_func, &buf, + err = arc_read(NULL, spa, bp, arc_getbuf_func, &buf, ZIO_PRIORITY_ASYNC_READ, ZIO_FLAG_CANFAIL, &flags, zb); if (err) return (err); @@ -2048,9 +2048,8 @@ zdb_blkptr_done(zio_t *zio) mutex_exit(&spa->spa_scrub_lock); } -/* ARGSUSED */ static int -zdb_blkptr_cb(spa_t *spa, zilog_t *zilog, const blkptr_t *bp, arc_buf_t *pbuf, +zdb_blkptr_cb(spa_t *spa, zilog_t *zilog, const blkptr_t *bp, const zbookmark_t *zb, const dnode_phys_t *dnp, void *arg) { zdb_cb_t *zcb = arg; @@ -2457,7 +2456,7 @@ typedef struct zdb_ddt_entry { /* ARGSUSED */ static int zdb_ddt_add_cb(spa_t *spa, zilog_t *zilog, const blkptr_t *bp, - arc_buf_t *pbuf, const zbookmark_t *zb, const dnode_phys_t *dnp, void *arg) + const zbookmark_t *zb, const dnode_phys_t *dnp, void *arg) { avl_tree_t *t = arg; avl_index_t where; |