diff options
author | ek110237 <none@none> | 2007-07-26 09:37:15 -0700 |
---|---|---|
committer | ek110237 <none@none> | 2007-07-26 09:37:15 -0700 |
commit | ed097989586a51afeee476d7fbba56222d447ad8 (patch) | |
tree | f43d7b5d2f261579a98fa1c0485f7154dc809536 /usr/src/uts/common/fs/zfs/zfs_vfsops.c | |
parent | faff872b7fa30b801c55f8dadc61b4c8fdd0848e (diff) | |
download | illumos-gate-ed097989586a51afeee476d7fbba56222d447ad8.tar.gz |
6509628 unmount of a snapshot (from 'zfs destroy') is slow
Diffstat (limited to 'usr/src/uts/common/fs/zfs/zfs_vfsops.c')
-rw-r--r-- | usr/src/uts/common/fs/zfs/zfs_vfsops.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/usr/src/uts/common/fs/zfs/zfs_vfsops.c b/usr/src/uts/common/fs/zfs/zfs_vfsops.c index c86ec69047..f69fdff1ce 100644 --- a/usr/src/uts/common/fs/zfs/zfs_vfsops.c +++ b/usr/src/uts/common/fs/zfs/zfs_vfsops.c @@ -1019,7 +1019,13 @@ zfs_umount(vfs_t *vfsp, int fflag, cred_t *cr) return (ret); } - (void) dnlc_purge_vfsp(vfsp, 0); + /* + * We purge the parent filesystem's vfsp as the parent filesystem + * and all of its snapshots have their vnode's v_vfsp set to the + * parent's filesystem's vfsp. Note, 'z_parent' is self + * referential for non-snapshots. + */ + (void) dnlc_purge_vfsp(zfsvfs->z_parent->z_vfs, 0); /* * Unmount any snapshots mounted under .zfs before unmounting the |