Print this page
4101 metaslab_debug should allow for fine-grained control
4102 space_maps should store more information about themselves
4103 space map object blocksize should be increased
4104 ::spa_space no longer works
4105 removing a mirrored log device results in a leaked object
4106 asynchronously load metaslab
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: Sebastien Roy <seb@delphix.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/dnode.c
          +++ new/usr/src/uts/common/fs/zfs/dnode.c
↓ open down ↓ 1326 lines elided ↑ open up ↑
1327 1327  
1328 1328          if (ibs == dn->dn_indblkshift)
1329 1329                  ibs = 0;
1330 1330  
1331 1331          if (size >> SPA_MINBLOCKSHIFT == dn->dn_datablkszsec && ibs == 0)
1332 1332                  return (0);
1333 1333  
1334 1334          rw_enter(&dn->dn_struct_rwlock, RW_WRITER);
1335 1335  
1336 1336          /* Check for any allocated blocks beyond the first */
1337      -        if (dn->dn_phys->dn_maxblkid != 0)
     1337 +        if (dn->dn_maxblkid != 0)
1338 1338                  goto fail;
1339 1339  
1340 1340          mutex_enter(&dn->dn_dbufs_mtx);
1341 1341          for (db = list_head(&dn->dn_dbufs); db; db = db_next) {
1342 1342                  db_next = list_next(&dn->dn_dbufs, db);
1343 1343  
1344 1344                  if (db->db_blkid != 0 && db->db_blkid != DMU_BONUS_BLKID &&
1345 1345                      db->db_blkid != DMU_SPILL_BLKID) {
1346 1346                          mutex_exit(&dn->dn_dbufs_mtx);
1347 1347                          goto fail;
↓ open down ↓ 659 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX