diff options
author | Attilio Rao <attilio@FreeBSD.org> | 2013-03-09 02:32:23 +0000 |
---|---|---|
committer | Attilio Rao <attilio@FreeBSD.org> | 2013-03-09 02:32:23 +0000 |
commit | 89f6b8632cc94bca2738b4fcc26e1189ef4f5dde (patch) | |
tree | 382de98b1c7b142a92ed9c04ab1ea90d5a1c3a06 /sys/nfsserver/nfs_serv.c | |
parent | c934116100c5a3574cb1bde0dc0b80b6b41d7e54 (diff) | |
download | src-test2-89f6b8632cc94bca2738b4fcc26e1189ef4f5dde.tar.gz src-test2-89f6b8632cc94bca2738b4fcc26e1189ef4f5dde.zip |
Notes
Diffstat (limited to 'sys/nfsserver/nfs_serv.c')
-rw-r--r-- | sys/nfsserver/nfs_serv.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/nfsserver/nfs_serv.c b/sys/nfsserver/nfs_serv.c index bef72afea337..2e7d8b0caff7 100644 --- a/sys/nfsserver/nfs_serv.c +++ b/sys/nfsserver/nfs_serv.c @@ -87,6 +87,7 @@ __FBSDID("$FreeBSD$"); #include <sys/sysctl.h> #include <sys/bio.h> #include <sys/buf.h> +#include <sys/rwlock.h> #include <vm/vm.h> #include <vm/vm_extern.h> @@ -3332,9 +3333,9 @@ nfsrv_commit(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, */ if (vp->v_object && (vp->v_object->flags & OBJ_MIGHTBEDIRTY)) { - VM_OBJECT_LOCK(vp->v_object); + VM_OBJECT_WLOCK(vp->v_object); vm_object_page_clean(vp->v_object, 0, 0, OBJPC_SYNC); - VM_OBJECT_UNLOCK(vp->v_object); + VM_OBJECT_WUNLOCK(vp->v_object); } error = VOP_FSYNC(vp, MNT_WAIT, curthread); } else { @@ -3363,10 +3364,10 @@ nfsrv_commit(struct nfsrv_descript *nfsd, struct nfssvc_sock *slp, if (vp->v_object && (vp->v_object->flags & OBJ_MIGHTBEDIRTY)) { - VM_OBJECT_LOCK(vp->v_object); + VM_OBJECT_WLOCK(vp->v_object); vm_object_page_clean(vp->v_object, off, off + cnt, OBJPC_SYNC); - VM_OBJECT_UNLOCK(vp->v_object); + VM_OBJECT_WUNLOCK(vp->v_object); } bo = &vp->v_bufobj; |