svn commit: r299908 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs

Andriy Gapon avg at FreeBSD.org
Mon May 16 06:49:11 UTC 2016


Author: avg
Date: Mon May 16 06:49:09 2016
New Revision: 299908
URL: https://svnweb.freebsd.org/changeset/base/299908

Log:
  zfsctl_snapdir_lookup: always clear VV_ROOT flag of snapshot's root VV_ROOT
  
  Previosuly we did that only if the snapshot was mounted earlier, its
  root vnode got recycled and then we accessed it again.
  We never cleared the flag for a freshly mounted snapshot.
  
  That was very inconsistent and probably a source of some bugs.
  Or maybe that painted over some bugs which might get revealed now.
  
  We should consistently clear the flag because we try very hard to
  pretend that snapshots auto-mounted under .zfs are part of their
  original filesystem.  In other words, we try to hide the fact that they
  are different filesystems / mountpoints.
  
  MFC after:	5 weeks

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c	Mon May 16 06:42:45 2016	(r299907)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c	Mon May 16 06:49:09 2016	(r299908)
@@ -1098,6 +1098,7 @@ domount:
 		 */
 		ASSERT(VTOZ(*vpp)->z_zfsvfs != zfsvfs);
 		VTOZ(*vpp)->z_zfsvfs->z_parent = zfsvfs;
+		(*vpp)->v_flag &= ~VROOT;
 	}
 	mutex_exit(&sdp->sd_lock);
 	ZFS_EXIT(zfsvfs);


More information about the svn-src-head mailing list