diff options
author | phk <phk@FreeBSD.org> | 2004-01-02 19:02:28 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2004-01-02 19:02:28 +0000 |
commit | 5b996ad186db188d424d6f603fe769319bd28bb7 (patch) | |
tree | dc40f70ba432060e01392dc92419d525474ee14d /sys/fs | |
parent | 88f59471abb7791a83316e70a4fe2e66fd70799d (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/fs/devfs/devfs_vnops.c | 5 |
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); |