Print this page
6267 dn_bonus evicted too early
Reviewed by: Richard Yao <ryao@gentoo.org>
Reviewed by: Xin LI <delphij@freebsd.org>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Approved by: Richard Lowe <richlowe@richlowe.net>

Split Close
Expand all
Collapse all
          --- old/usr/src/uts/common/fs/zfs/dmu_objset.c
          +++ new/usr/src/uts/common/fs/zfs/dmu_objset.c
↓ open down ↓ 674 lines elided ↑ open up ↑
 675  675                      zfs_prop_to_name(ZFS_PROP_PRIMARYCACHE),
 676  676                      primary_cache_changed_cb, os));
 677  677                  VERIFY0(dsl_prop_unregister(ds,
 678  678                      zfs_prop_to_name(ZFS_PROP_SECONDARYCACHE),
 679  679                      secondary_cache_changed_cb, os));
 680  680          }
 681  681  
 682  682          if (os->os_sa)
 683  683                  sa_tear_down(os);
 684  684  
 685      -        os->os_evicting = B_TRUE;
 686  685          dmu_objset_evict_dbufs(os);
 687  686  
 688  687          mutex_enter(&os->os_lock);
 689  688          spa_evicting_os_register(os->os_spa, os);
 690  689          if (list_is_empty(&os->os_dnodes)) {
 691  690                  mutex_exit(&os->os_lock);
 692  691                  dmu_objset_evict_done(os);
 693  692          } else {
 694  693                  mutex_exit(&os->os_lock);
 695  694          }
↓ open down ↓ 1151 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX