summaryrefslogtreecommitdiffstats
path: root/sys/fs/devfs
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2004-01-02 19:02:28 +0000
committerphk <phk@FreeBSD.org>2004-01-02 19:02:28 +0000
commit5b996ad186db188d424d6f603fe769319bd28bb7 (patch)
treedc40f70ba432060e01392dc92419d525474ee14d /sys/fs/devfs
parent88f59471abb7791a83316e70a4fe2e66fd70799d (diff)
downloadFreeBSD-src-5b996ad186db188d424d6f603fe769319bd28bb7.zip
FreeBSD-src-5b996ad186db188d424d6f603fe769319bd28bb7.tar.gz
Improve on POLA by populating DEVFS before doing devfs(8) rule ioctls.
PR: 60687 Spotted by: Colin Percival <cperciva@daemonology.net>
Diffstat (limited to 'sys/fs/devfs')
-rw-r--r--sys/fs/devfs/devfs_vnops.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c
index c9e6ad1..8f03714 100644
--- a/sys/fs/devfs/devfs_vnops.c
+++ b/sys/fs/devfs/devfs_vnops.c
@@ -279,7 +279,12 @@ devfs_ioctl(ap)
} */ *ap;
{
int error;
+ struct devfs_mount *dmp;
+ dmp = VFSTODEVFS(ap->a_vp->v_mount);
+ lockmgr(&dmp->dm_lock, LK_SHARED, 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,
ap->a_td);
return (error);
OpenPOWER on IntegriCloud