summaryrefslogtreecommitdiffstats
path: root/sys/fs/devfs/devfs_vnops.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2005-09-15 08:36:37 +0000
committerphk <phk@FreeBSD.org>2005-09-15 08:36:37 +0000
commit1a7de63bbb6ec885b914b9b3d077642dd4350220 (patch)
tree4ba8568596d276b1a3189e49af8cdb1f3f6765d3 /sys/fs/devfs/devfs_vnops.c
parent4583eb76103532bc386b6c8047ed52500bd62473 (diff)
downloadFreeBSD-src-1a7de63bbb6ec885b914b9b3d077642dd4350220.zip
FreeBSD-src-1a7de63bbb6ec885b914b9b3d077642dd4350220.tar.gz
Absolve devfs_rule.c from locking responsibility and call it with
all necessary locking held.
Diffstat (limited to 'sys/fs/devfs/devfs_vnops.c')
-rw-r--r--sys/fs/devfs/devfs_vnops.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c
index 196e577..30c2c21 100644
--- a/sys/fs/devfs/devfs_vnops.c
+++ b/sys/fs/devfs/devfs_vnops.c
@@ -979,11 +979,11 @@ devfs_rioctl(struct vop_ioctl_args *ap)
struct devfs_mount *dmp;
dmp = VFSTODEVFS(ap->a_vp->v_mount);
- lockmgr(&dmp->dm_lock, LK_SHARED, 0, curthread);
+ lockmgr(&dmp->dm_lock, LK_EXCLUSIVE, 0, curthread);
devfs_populate(dmp);
- lockmgr(&dmp->dm_lock, LK_RELEASE, 0, curthread);
- error = devfs_rules_ioctl(ap->a_vp->v_mount, ap->a_command, ap->a_data,
+ error = devfs_rules_ioctl(dmp, ap->a_command, ap->a_data,
ap->a_td);
+ lockmgr(&dmp->dm_lock, LK_RELEASE, 0, curthread);
return (error);
}
OpenPOWER on IntegriCloud