summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_vnops.c
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2006-03-22 00:00:05 +0000
committerjeff <jeff@FreeBSD.org>2006-03-22 00:00:05 +0000
commit48983531da4ab09f94ba5d1758f608ec51d1e89a (patch)
treeffd6aeafb89939adff99b7339b24226a034c9b09 /sys/kern/vfs_vnops.c
parent638dce7cfb6760b92da51b51128a943690235da7 (diff)
downloadFreeBSD-src-48983531da4ab09f94ba5d1758f608ec51d1e89a.zip
FreeBSD-src-48983531da4ab09f94ba5d1758f608ec51d1e89a.tar.gz
- Remove explicit giant acquires and replace it with VFS_LOCK_GIANT.
Sponsored by: Isilon Systems, Inc.
Diffstat (limited to 'sys/kern/vfs_vnops.c')
-rw-r--r--sys/kern/vfs_vnops.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c
index fd126a5..e0a6866 100644
--- a/sys/kern/vfs_vnops.c
+++ b/sys/kern/vfs_vnops.c
@@ -758,11 +758,11 @@ vn_poll(fp, events, active_cred, td)
struct thread *td;
{
struct vnode *vp;
+ int vfslocked;
int error;
- mtx_lock(&Giant);
-
vp = fp->f_vnode;
+ vfslocked = VFS_LOCK_GIANT(vp->v_mount);
#ifdef MAC
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td);
error = mac_check_vnode_poll(active_cred, fp->f_cred, vp);
@@ -771,7 +771,7 @@ vn_poll(fp, events, active_cred, td)
#endif
error = VOP_POLL(vp, events, fp->f_cred, td);
- mtx_unlock(&Giant);
+ VFS_UNLOCK_GIANT(vfslocked);
return (error);
}
@@ -1102,11 +1102,12 @@ vfs_write_resume(mp)
static int
vn_kqfilter(struct file *fp, struct knote *kn)
{
+ int vfslocked;
int error;
- mtx_lock(&Giant);
+ vfslocked = VFS_LOCK_GIANT(fp->f_vnode->v_mount);
error = VOP_KQFILTER(fp->f_vnode, kn);
- mtx_unlock(&Giant);
+ VFS_UNLOCK_GIANT(vfslocked);
return error;
}
OpenPOWER on IntegriCloud