From 77e5cd5541fd0e92ec5bf37f660a38f4a882d1c1 Mon Sep 17 00:00:00 2001 From: jhb Date: Tue, 8 Jan 2008 04:45:24 +0000 Subject: Lock the vnode interlock while reading v_usecount to update si_usecount in a cdev in devfs_reclaim(). MFC after: 3 days Reviewed by: jeff (a while ago) --- sys/fs/devfs/devfs_vnops.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'sys/fs/devfs') diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c index 7c753f1..6cae05e 100644 --- a/sys/fs/devfs/devfs_vnops.c +++ b/sys/fs/devfs/devfs_vnops.c @@ -992,17 +992,20 @@ devfs_reclaim(struct vop_reclaim_args *ap) vnode_destroy_vobject(vp); + VI_LOCK(vp); dev_lock(); dev = vp->v_rdev; vp->v_rdev = NULL; if (dev == NULL) { dev_unlock(); + VI_UNLOCK(vp); return (0); } dev->si_usecount -= vp->v_usecount; dev_unlock(); + VI_UNLOCK(vp); dev_rel(dev); return (0); } -- cgit v1.1