diff options
author | ups <ups@FreeBSD.org> | 2006-05-25 17:16:11 +0000 |
---|---|---|
committer | ups <ups@FreeBSD.org> | 2006-05-25 17:16:11 +0000 |
commit | d193a40233ed361bf9ca9e0f20a916ea5f52995c (patch) | |
tree | f2ac3a3c863f65e336fb1af19054d9b1d90876cc /sys/fs/nwfs | |
parent | 032282fd7ed46086875bc10c4810095d40fe6dc4 (diff) | |
download | FreeBSD-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/nwfs')
-rw-r--r-- | sys/fs/nwfs/nwfs_io.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/fs/nwfs/nwfs_io.c b/sys/fs/nwfs/nwfs_io.c index 84ae3cd..b74cd4a 100644 --- a/sys/fs/nwfs/nwfs_io.c +++ b/sys/fs/nwfs/nwfs_io.c @@ -612,8 +612,11 @@ nwfs_vinvalbuf(vp, 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) { |