summaryrefslogtreecommitdiffstats
path: root/sys/fs/smbfs
diff options
context:
space:
mode:
authorups <ups@FreeBSD.org>2006-05-25 17:16:11 +0000
committerups <ups@FreeBSD.org>2006-05-25 17:16:11 +0000
commitd193a40233ed361bf9ca9e0f20a916ea5f52995c (patch)
treef2ac3a3c863f65e336fb1af19054d9b1d90876cc /sys/fs/smbfs
parent032282fd7ed46086875bc10c4810095d40fe6dc4 (diff)
downloadFreeBSD-src-d193a40233ed361bf9ca9e0f20a916ea5f52995c.zip
FreeBSD-src-d193a40233ed361bf9ca9e0f20a916ea5f52995c.tar.gz
Call vm_object_page_clean() with the object lock held.
Submitted by: kensmith@ Reviewed by: mohans@ MFC after: 6 days
Diffstat (limited to 'sys/fs/smbfs')
-rw-r--r--sys/fs/smbfs/smbfs_io.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/fs/smbfs/smbfs_io.c b/sys/fs/smbfs/smbfs_io.c
index 7e76a87..756ea01 100644
--- a/sys/fs/smbfs/smbfs_io.c
+++ b/sys/fs/smbfs/smbfs_io.c
@@ -684,8 +684,11 @@ smbfs_vinvalbuf(struct vnode *vp, struct thread *td)
}
np->n_flag |= NFLUSHINPROG;
- if (vp->v_bufobj.bo_object != NULL)
+ if (vp->v_bufobj.bo_object != NULL) {
+ VM_OBJECT_LOCK(vp->v_bufobj.bo_object);
vm_object_page_clean(vp->v_bufobj.bo_object, 0, 0, OBJPC_SYNC);
+ VM_OBJECT_UNLOCK(vp->v_bufobj.bo_object);
+ }
error = vinvalbuf(vp, V_SAVE, td, PCATCH, 0);
while (error) {
OpenPOWER on IntegriCloud