diff options
author | George Wilson <[email protected]> | 2013-10-04 14:13:23 -0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2014-07-17 11:37:57 -0700 |
commit | 2fbc542ebdee773ab45fd0d35029d6978aa5900b (patch) | |
tree | a8fca77ea12b3e55a682f962401cf713ebdbb7bd /module/zfs/dbuf.c | |
parent | f4a4046bd60523c2d5d9c3ed85e74c3d08638393 (diff) |
Illumos 4168, 4169, 4170: ztest, zdb and zhack fixes
4168 ztest assertion failure in dbuf_undirty
4169 verbatim import causes zdb to segfault
4170 zhack leaves pool in ACTIVE state
Reviewed by: Adam Leventhal <[email protected]>
Reviewed by: Eric Schrock <[email protected]>
Reviewed by: Matthew Ahrens <[email protected]>
Approved by: Dan McDonald <[email protected]>
References:
https://www.illumos.org/issues/4168
https://www.illumos.org/issues/4169
https://www.illumos.org/issues/4170
https://github.com/illumos/illumos-gate/commit/7fdd916
Porting notes:
Of particular interest when troubleshooting corrupted pools, the
commonly-used "zdb -e" operation may perform verbatim imports and
furthermore, it will soon have direct support for verbatim imports via
a new "-V" option. The 4169 fix eliminates a common segfault case in
which spa_history_log_version() tries to access an un-opened dsl_pool_t.
Ported by: Tim Chase <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Closes #2451
Closes #2283
Closes #2467
Diffstat (limited to 'module/zfs/dbuf.c')
-rw-r--r-- | module/zfs/dbuf.c | 8 |
1 files changed, 0 insertions, 8 deletions
diff --git a/module/zfs/dbuf.c b/module/zfs/dbuf.c index 4f1750650..c70306c9a 100644 --- a/module/zfs/dbuf.c +++ b/module/zfs/dbuf.c @@ -1391,14 +1391,6 @@ dbuf_undirty(dmu_buf_impl_t *db, dmu_tx_t *tx) DB_DNODE_ENTER(db); dn = DB_DNODE(db); - /* - * Note: This code will probably work even if there are concurrent - * holders, but it is untested in that scenerio, as the ZPL and - * ztest have additional locking (the range locks) that prevents - * that type of concurrent access. - */ - ASSERT3U(refcount_count(&db->db_holds), ==, db->db_dirtycnt); - dprintf_dbuf(db, "size=%llx\n", (u_longlong_t)db->db.db_size); ASSERT(db->db.db_size != 0); |