From 314464f422ec3e6917f30826ff358447fc1053cd Mon Sep 17 00:00:00 2001 From: John Baldwin Date: Tue, 8 Jan 2008 04:45:24 +0000 Subject: [PATCH] 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(+) diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c index 7c753f11fc7..6cae05e717a 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); }