View | Details | Raw Unified | Return to bug 207464 | Differences between
and this patch

Collapse All | Expand All

(-)b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c (-2 lines)
Lines 1113-1119 zfsctl_snapdir_lookup(ap) Link Here
1113
	sep->se_name = kmem_alloc(strlen(nm) + 1, KM_SLEEP);
1113
	sep->se_name = kmem_alloc(strlen(nm) + 1, KM_SLEEP);
1114
	(void) strcpy(sep->se_name, nm);
1114
	(void) strcpy(sep->se_name, nm);
1115
	*vpp = sep->se_root = zfsctl_snapshot_mknode(dvp, dmu_objset_id(snap));
1115
	*vpp = sep->se_root = zfsctl_snapshot_mknode(dvp, dmu_objset_id(snap));
1116
	VN_HOLD(*vpp);
1117
	avl_insert(&sdp->sd_snaps, sep, where);
1116
	avl_insert(&sdp->sd_snaps, sep, where);
1118
1117
1119
	dmu_objset_rele(snap, FTAG);
1118
	dmu_objset_rele(snap, FTAG);
Lines 1490-1496 zfsctl_snapshot_mknode(vnode_t *pvp, uint64_t objset) Link Here
1490
1489
1491
	vp = gfs_dir_create(sizeof (zfsctl_node_t), pvp, pvp->v_vfsp,
1490
	vp = gfs_dir_create(sizeof (zfsctl_node_t), pvp, pvp->v_vfsp,
1492
	    &zfsctl_ops_snapshot, NULL, NULL, MAXNAMELEN, NULL, NULL);
1491
	    &zfsctl_ops_snapshot, NULL, NULL, MAXNAMELEN, NULL, NULL);
1493
	VN_HOLD(vp);
1494
	zcp = vp->v_data;
1492
	zcp = vp->v_data;
1495
	zcp->zc_id = objset;
1493
	zcp->zc_id = objset;
1496
	VOP_UNLOCK(vp, 0);
1494
	VOP_UNLOCK(vp, 0);
(-)b/sys/cddl/compat/opensolaris/kern/opensolaris_vfs.c (-1 / +1 lines)
Lines 228-234 mount_snapshot(kthread_t *td, vnode_t **vpp, const char *fstype, char *fspath, Link Here
228
	vfs_event_signal(NULL, VQ_MOUNT, 0);
228
	vfs_event_signal(NULL, VQ_MOUNT, 0);
229
	if (VFS_ROOT(mp, LK_EXCLUSIVE, &mvp))
229
	if (VFS_ROOT(mp, LK_EXCLUSIVE, &mvp))
230
		panic("mount: lost mount");
230
		panic("mount: lost mount");
231
	vput(vp);
231
	VOP_UNLOCK(vp, 0);
232
	vfs_unbusy(mp);
232
	vfs_unbusy(mp);
233
	*vpp = mvp;
233
	*vpp = mvp;
234
	return (0);
234
	return (0);
(-)b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c (-6 lines)
Lines 2005-2016 zfs_umount(vfs_t *vfsp, int fflag) Link Here
2005
	 */
2005
	 */
2006
	if (zfsvfs->z_ctldir != NULL)
2006
	if (zfsvfs->z_ctldir != NULL)
2007
		zfsctl_destroy(zfsvfs);
2007
		zfsctl_destroy(zfsvfs);
2008
	if (zfsvfs->z_issnap) {
2009
		vnode_t *svp = vfsp->mnt_vnodecovered;
2010
2011
		if (svp->v_count >= 2)
2012
			VN_RELE(svp);
2013
	}
2014
	zfs_freevfs(vfsp);
2008
	zfs_freevfs(vfsp);
2015
2009
2016
	return (0);
2010
	return (0);

Return to bug 207464