nfs_clnode.c (243311) | nfs_clnode.c (248084) |
---|---|
1/*- 2 * Copyright (c) 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Rick Macklem at The University of Guelph. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 19 unchanged lines hidden (view full) --- 28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30 * SUCH DAMAGE. 31 * 32 * from nfs_node.c 8.6 (Berkeley) 5/22/95 33 */ 34 35#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Rick Macklem at The University of Guelph. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 19 unchanged lines hidden (view full) --- 28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30 * SUCH DAMAGE. 31 * 32 * from nfs_node.c 8.6 (Berkeley) 5/22/95 33 */ 34 35#include <sys/cdefs.h> |
36__FBSDID("$FreeBSD: head/sys/fs/nfsclient/nfs_clnode.c 243311 2012-11-19 22:43:45Z attilio $"); | 36__FBSDID("$FreeBSD: head/sys/fs/nfsclient/nfs_clnode.c 248084 2013-03-09 02:32:23Z attilio $"); |
37 38#include "opt_kdtrace.h" 39 40#include <sys/param.h> 41#include <sys/systm.h> 42#include <sys/fcntl.h> 43#include <sys/lock.h> 44#include <sys/malloc.h> --- 166 unchanged lines hidden (view full) --- 211 if (NFS_ISV4(vp) && vp->v_type == VREG) { 212 /* 213 * Since mmap()'d files do I/O after VOP_CLOSE(), the NFSv4 214 * Close operations are delayed until now. Any dirty 215 * buffers/pages must be flushed before the close, so that the 216 * stateid is available for the writes. 217 */ 218 if (vp->v_object != NULL) { | 37 38#include "opt_kdtrace.h" 39 40#include <sys/param.h> 41#include <sys/systm.h> 42#include <sys/fcntl.h> 43#include <sys/lock.h> 44#include <sys/malloc.h> --- 166 unchanged lines hidden (view full) --- 211 if (NFS_ISV4(vp) && vp->v_type == VREG) { 212 /* 213 * Since mmap()'d files do I/O after VOP_CLOSE(), the NFSv4 214 * Close operations are delayed until now. Any dirty 215 * buffers/pages must be flushed before the close, so that the 216 * stateid is available for the writes. 217 */ 218 if (vp->v_object != NULL) { |
219 VM_OBJECT_LOCK(vp->v_object); | 219 VM_OBJECT_WLOCK(vp->v_object); |
220 retv = vm_object_page_clean(vp->v_object, 0, 0, 221 OBJPC_SYNC); | 220 retv = vm_object_page_clean(vp->v_object, 0, 0, 221 OBJPC_SYNC); |
222 VM_OBJECT_UNLOCK(vp->v_object); | 222 VM_OBJECT_WUNLOCK(vp->v_object); |
223 } else 224 retv = TRUE; 225 if (retv == TRUE) { 226 (void)ncl_flush(vp, MNT_WAIT, NULL, ap->a_td, 1, 0); 227 (void)nfsrpc_close(vp, 1, ap->a_td); 228 } 229 } 230 --- 105 unchanged lines hidden --- | 223 } else 224 retv = TRUE; 225 if (retv == TRUE) { 226 (void)ncl_flush(vp, MNT_WAIT, NULL, ap->a_td, 1, 0); 227 (void)nfsrpc_close(vp, 1, ap->a_td); 228 } 229 } 230 --- 105 unchanged lines hidden --- |