diff options
author | attilio <attilio@FreeBSD.org> | 2013-03-09 02:51:51 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2013-03-09 02:51:51 +0000 |
commit | 16a80466e5837ad617b6b144297fd6069188b9b3 (patch) | |
tree | 68f0fe73cda2b8a8692af0e8e2b09c7e6d1a7ed1 /sys/kern/vfs_aio.c | |
parent | 640e058da3cee2710fd66a67abbb548aad74104e (diff) | |
parent | 72f7f3e528d2e900546a7ccbe16525b12d64dd44 (diff) | |
download | FreeBSD-src-16a80466e5837ad617b6b144297fd6069188b9b3.zip FreeBSD-src-16a80466e5837ad617b6b144297fd6069188b9b3.tar.gz |
MFC
Diffstat (limited to 'sys/kern/vfs_aio.c')
-rw-r--r-- | sys/kern/vfs_aio.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/vfs_aio.c b/sys/kern/vfs_aio.c index cba1638..cafe440 100644 --- a/sys/kern/vfs_aio.c +++ b/sys/kern/vfs_aio.c @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$"); #include <sys/resourcevar.h> #include <sys/signalvar.h> #include <sys/protosw.h> +#include <sys/rwlock.h> #include <sys/sema.h> #include <sys/socket.h> #include <sys/socketvar.h> @@ -841,9 +842,9 @@ aio_fsync_vnode(struct thread *td, struct vnode *vp) goto drop; vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); if (vp->v_object != NULL) { - VM_OBJECT_LOCK(vp->v_object); + VM_OBJECT_WLOCK(vp->v_object); vm_object_page_clean(vp->v_object, 0, 0, 0); - VM_OBJECT_UNLOCK(vp->v_object); + VM_OBJECT_WUNLOCK(vp->v_object); } error = VOP_FSYNC(vp, MNT_WAIT, td); |