diff options
author | phk <phk@FreeBSD.org> | 2005-02-17 10:49:51 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 2005-02-17 10:49:51 +0000 |
commit | af1fa2025c1adbd3aa43852fd421e5de95e7e48a (patch) | |
tree | c6ca1c2d787f19fc07fe230b8960fbd1ed235cbb /sys/fs/devfs | |
parent | b6768ad7ab5e57fa2022ae70c6a59bf4b89bdfb8 (diff) | |
download | FreeBSD-src-af1fa2025c1adbd3aa43852fd421e5de95e7e48a.zip FreeBSD-src-af1fa2025c1adbd3aa43852fd421e5de95e7e48a.tar.gz |
Introduce vx_wait{l}() and use it instead of home-rolled versions.
Diffstat (limited to 'sys/fs/devfs')
-rw-r--r-- | sys/fs/devfs/devfs_vnops.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c index 96fc730..dc20a60 100644 --- a/sys/fs/devfs/devfs_vnops.c +++ b/sys/fs/devfs/devfs_vnops.c @@ -1109,17 +1109,13 @@ devfs_revoke(ap) de = vp->v_data; de->de_vnode = NULL; - VI_LOCK(vp); /* * If a vgone (or vclean) is already in progress, * wait until it is done and return. */ - if (vp->v_iflag & VI_XLOCK) { - vp->v_iflag |= VI_XWANT; - msleep(vp, VI_MTX(vp), PINOD | PDROP, "vop_revokeall", 0); + if (vx_wait(vp)) return (0); - } - VI_UNLOCK(vp); + dev = vp->v_rdev; for (;;) { dev_lock(); |