ffs_rawread.c (233438) | ffs_rawread.c (248084) |
---|---|
1/*- 2 * Copyright (c) 2000-2003 Tor Egge 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 11 unchanged lines hidden (view full) --- 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 */ 26 27#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 2000-2003 Tor Egge 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 11 unchanged lines hidden (view full) --- 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 */ 26 27#include <sys/cdefs.h> |
28__FBSDID("$FreeBSD: head/sys/ufs/ffs/ffs_rawread.c 233438 2012-03-25 00:02:37Z mckusick $"); | 28__FBSDID("$FreeBSD: head/sys/ufs/ffs/ffs_rawread.c 248084 2013-03-09 02:32:23Z attilio $"); |
29 30#include <sys/param.h> 31#include <sys/systm.h> 32#include <sys/fcntl.h> 33#include <sys/file.h> 34#include <sys/stat.h> 35#include <sys/proc.h> 36#include <sys/limits.h> 37#include <sys/mount.h> 38#include <sys/namei.h> 39#include <sys/vnode.h> 40#include <sys/conf.h> 41#include <sys/filio.h> 42#include <sys/ttycom.h> 43#include <sys/bio.h> 44#include <sys/buf.h> | 29 30#include <sys/param.h> 31#include <sys/systm.h> 32#include <sys/fcntl.h> 33#include <sys/file.h> 34#include <sys/stat.h> 35#include <sys/proc.h> 36#include <sys/limits.h> 37#include <sys/mount.h> 38#include <sys/namei.h> 39#include <sys/vnode.h> 40#include <sys/conf.h> 41#include <sys/filio.h> 42#include <sys/ttycom.h> 43#include <sys/bio.h> 44#include <sys/buf.h> |
45#include <sys/rwlock.h> |
|
45#include <ufs/ufs/extattr.h> 46#include <ufs/ufs/quota.h> 47#include <ufs/ufs/inode.h> 48#include <ufs/ufs/ufsmount.h> 49#include <ufs/ufs/ufs_extern.h> 50#include <ufs/ffs/fs.h> 51#include <ufs/ffs/ffs_extern.h> 52 --- 85 unchanged lines hidden (view full) --- 138 VOP_LOCK(vp, LK_DOWNGRADE); 139 vn_finished_write(mp); 140 return (EIO); 141 } 142 /* Attempt to msync mmap() regions to clean dirty mmap */ 143 if ((obj = vp->v_object) != NULL && 144 (obj->flags & OBJ_MIGHTBEDIRTY) != 0) { 145 VI_UNLOCK(vp); | 46#include <ufs/ufs/extattr.h> 47#include <ufs/ufs/quota.h> 48#include <ufs/ufs/inode.h> 49#include <ufs/ufs/ufsmount.h> 50#include <ufs/ufs/ufs_extern.h> 51#include <ufs/ffs/fs.h> 52#include <ufs/ffs/ffs_extern.h> 53 --- 85 unchanged lines hidden (view full) --- 139 VOP_LOCK(vp, LK_DOWNGRADE); 140 vn_finished_write(mp); 141 return (EIO); 142 } 143 /* Attempt to msync mmap() regions to clean dirty mmap */ 144 if ((obj = vp->v_object) != NULL && 145 (obj->flags & OBJ_MIGHTBEDIRTY) != 0) { 146 VI_UNLOCK(vp); |
146 VM_OBJECT_LOCK(obj); | 147 VM_OBJECT_WLOCK(obj); |
147 vm_object_page_clean(obj, 0, 0, OBJPC_SYNC); | 148 vm_object_page_clean(obj, 0, 0, OBJPC_SYNC); |
148 VM_OBJECT_UNLOCK(obj); | 149 VM_OBJECT_WUNLOCK(obj); |
149 } else 150 VI_UNLOCK(vp); 151 152 /* Wait for pending writes to complete */ 153 BO_LOCK(bo); 154 error = bufobj_wwait(&vp->v_bufobj, 0, 0); 155 if (error != 0) { 156 /* XXX: can't happen with a zero timeout ??? */ --- 340 unchanged lines hidden --- | 150 } else 151 VI_UNLOCK(vp); 152 153 /* Wait for pending writes to complete */ 154 BO_LOCK(bo); 155 error = bufobj_wwait(&vp->v_bufobj, 0, 0); 156 if (error != 0) { 157 /* XXX: can't happen with a zero timeout ??? */ --- 340 unchanged lines hidden --- |