diff options
author | alc <alc@FreeBSD.org> | 2004-11-06 05:33:02 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2004-11-06 05:33:02 +0000 |
commit | 4030274372d7f9f80cfaca348850163d9304a431 (patch) | |
tree | f75344d5038066255af0c0ea580ccb09e34bd84f /sys/kern/vfs_default.c | |
parent | 88e4a8c0bdafc82867314450455ec25c5ebd48db (diff) | |
download | FreeBSD-src-4030274372d7f9f80cfaca348850163d9304a431.zip FreeBSD-src-4030274372d7f9f80cfaca348850163d9304a431.tar.gz |
Move a call to wakeup() from vm_object_terminate() to vnode_pager_dealloc()
because this call is only needed to wake threads that slept when they
discovered a dead object connected to a vnode. To eliminate unnecessary
calls to wakeup() by vnode_pager_dealloc(), introduce a new flag,
OBJ_DISCONNECTWNT.
Reviewed by: tegge@
Diffstat (limited to 'sys/kern/vfs_default.c')
-rw-r--r-- | sys/kern/vfs_default.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/kern/vfs_default.c b/sys/kern/vfs_default.c index a2d7a0d..99b6e4d 100644 --- a/sys/kern/vfs_default.c +++ b/sys/kern/vfs_default.c @@ -424,6 +424,7 @@ retry: VM_OBJECT_LOCK(object); if (object->flags & OBJ_DEAD) { VOP_UNLOCK(vp, 0, td); + vm_object_set_flag(object, OBJ_DISCONNECTWNT); msleep(object, VM_OBJECT_MTX(object), PDROP | PVM, "vodead", 0); vn_lock(vp, LK_EXCLUSIVE | LK_RETRY, td); |