diff options
author | kib <kib@FreeBSD.org> | 2012-10-22 17:50:54 +0000 |
---|---|---|
committer | kib <kib@FreeBSD.org> | 2012-10-22 17:50:54 +0000 |
commit | 560aa751e0f5cfef868bdf3fab01cdbc5169ef82 (patch) | |
tree | 6e9ef0a47c5e91d26227820c50c9767e84550821 /sys/fs/unionfs/union_subr.c | |
parent | ca71b68ea40c83f641d6485e027368568f244197 (diff) | |
download | FreeBSD-src-560aa751e0f5cfef868bdf3fab01cdbc5169ef82.zip FreeBSD-src-560aa751e0f5cfef868bdf3fab01cdbc5169ef82.tar.gz |
Remove the support for using non-mpsafe filesystem modules.
In particular, do not lock Giant conditionally when calling into the
filesystem module, remove the VFS_LOCK_GIANT() and related
macros. Stop handling buffers belonging to non-mpsafe filesystems.
The VFS_VERSION is bumped to indicate the interface change which does
not result in the interface signatures changes.
Conducted and reviewed by: attilio
Tested by: pho
Diffstat (limited to 'sys/fs/unionfs/union_subr.c')
-rw-r--r-- | sys/fs/unionfs/union_subr.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/sys/fs/unionfs/union_subr.c b/sys/fs/unionfs/union_subr.c index 528271c..d3532027 100644 --- a/sys/fs/unionfs/union_subr.c +++ b/sys/fs/unionfs/union_subr.c @@ -331,7 +331,6 @@ unionfs_nodeget_out: void unionfs_noderem(struct vnode *vp, struct thread *td) { - int vfslocked; int count; struct unionfs_node *unp, *unp_t1, *unp_t2; struct unionfs_node_hashhead *hd; @@ -366,20 +365,12 @@ unionfs_noderem(struct vnode *vp, struct thread *td) if (lockmgr(vp->v_vnlock, LK_EXCLUSIVE, VI_MTX(vp)) != 0) panic("the lock for deletion is unacquirable."); - if (lvp != NULLVP) { - vfslocked = VFS_LOCK_GIANT(lvp->v_mount); + if (lvp != NULLVP) vrele(lvp); - VFS_UNLOCK_GIANT(vfslocked); - } - if (uvp != NULLVP) { - vfslocked = VFS_LOCK_GIANT(uvp->v_mount); + if (uvp != NULLVP) vrele(uvp); - VFS_UNLOCK_GIANT(vfslocked); - } if (dvp != NULLVP) { - vfslocked = VFS_LOCK_GIANT(dvp->v_mount); vrele(dvp); - VFS_UNLOCK_GIANT(vfslocked); unp->un_dvp = NULLVP; } if (unp->un_path != NULL) { |