diff options
author | maybee <none@none> | 2007-08-26 11:19:04 -0700 |
---|---|---|
committer | maybee <none@none> | 2007-08-26 11:19:04 -0700 |
commit | 1934e92fc930c49429ad71a8ca97340f33227e78 (patch) | |
tree | 80cf4c2e87b71ea83603ec7087e5c7d837b21df7 /usr/src/uts/common/fs/zfs/vdev.c | |
parent | f2cd0f027a2c872a297e602d646cc147ce718534 (diff) | |
download | illumos-gate-1934e92fc930c49429ad71a8ca97340f33227e78.tar.gz |
6569719 panic dangling dbufs (dn=ffffffff28814d30, dbuf=ffffffff20756008)
6573361 panic turnstile_block, unowned mutex
6584864 $MOS is not properly bounded by pool size
6585265 need bonus resize interface
6587723 BAD TRAP: type=e (#pf Page fault) occurred in module "zfs" due to a NULL pointer dereference
6589799 dangling dbuf after zinject
6594025 panic: dangling dbufs during shutdown
Diffstat (limited to 'usr/src/uts/common/fs/zfs/vdev.c')
-rw-r--r-- | usr/src/uts/common/fs/zfs/vdev.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/usr/src/uts/common/fs/zfs/vdev.c b/usr/src/uts/common/fs/zfs/vdev.c index ffcc7dcd00..4bcaaf368d 100644 --- a/usr/src/uts/common/fs/zfs/vdev.c +++ b/usr/src/uts/common/fs/zfs/vdev.c @@ -765,8 +765,8 @@ vdev_metaslab_init(vdev_t *vd, uint64_t txg) error = dmu_bonus_hold(mos, object, FTAG, &db); if (error) return (error); - ASSERT3U(db->db_size, ==, sizeof (smo)); - bcopy(db->db_data, &smo, db->db_size); + ASSERT3U(db->db_size, >=, sizeof (smo)); + bcopy(db->db_data, &smo, sizeof (smo)); ASSERT3U(smo.smo_object, ==, object); dmu_buf_rele(db, FTAG); } @@ -1234,8 +1234,8 @@ vdev_dtl_load(vdev_t *vd) if ((error = dmu_bonus_hold(mos, smo->smo_object, FTAG, &db)) != 0) return (error); - ASSERT3U(db->db_size, ==, sizeof (*smo)); - bcopy(db->db_data, smo, db->db_size); + ASSERT3U(db->db_size, >=, sizeof (*smo)); + bcopy(db->db_data, smo, sizeof (*smo)); dmu_buf_rele(db, FTAG); mutex_enter(&vd->vdev_dtl_lock); @@ -1305,8 +1305,8 @@ vdev_dtl_sync(vdev_t *vd, uint64_t txg) VERIFY(0 == dmu_bonus_hold(mos, smo->smo_object, FTAG, &db)); dmu_buf_will_dirty(db, tx); - ASSERT3U(db->db_size, ==, sizeof (*smo)); - bcopy(smo, db->db_data, db->db_size); + ASSERT3U(db->db_size, >=, sizeof (*smo)); + bcopy(smo, db->db_data, sizeof (*smo)); dmu_buf_rele(db, FTAG); dmu_tx_commit(tx); |