version 1.79.4.1, 2012/04/06 17:40:20 |
version 1.79.4.2, 2012/05/07 03:01:13 |
Line 653 msdosfs_write(void *v) |
|
Line 653 msdosfs_write(void *v) |
|
if (!async && oldoff >> 16 != uio->uio_offset >> 16) { |
if (!async && oldoff >> 16 != uio->uio_offset >> 16) { |
mutex_enter(vp->v_interlock); |
mutex_enter(vp->v_interlock); |
error = VOP_PUTPAGES(vp, (oldoff >> 16) << 16, |
error = VOP_PUTPAGES(vp, (oldoff >> 16) << 16, |
(uio->uio_offset >> 16) << 16, PGO_CLEANIT); |
(uio->uio_offset >> 16) << 16, |
|
PGO_CLEANIT | PGO_LAZY); |
} |
} |
} while (error == 0 && uio->uio_resid > 0); |
} while (error == 0 && uio->uio_resid > 0); |
|
|
Line 1805 msdosfs_fsync(void *v) |
|
Line 1806 msdosfs_fsync(void *v) |
|
|
|
fstrans_start(vp->v_mount, FSTRANS_LAZY); |
fstrans_start(vp->v_mount, FSTRANS_LAZY); |
wait = (ap->a_flags & FSYNC_WAIT) != 0; |
wait = (ap->a_flags & FSYNC_WAIT) != 0; |
error = vflushbuf(vp, wait); |
error = vflushbuf(vp, ap->a_flags); |
if (error == 0 && (ap->a_flags & FSYNC_DATAONLY) == 0) |
if (error == 0 && (ap->a_flags & FSYNC_DATAONLY) == 0) |
error = msdosfs_update(vp, NULL, NULL, wait ? UPDATE_WAIT : 0); |
error = msdosfs_update(vp, NULL, NULL, wait ? UPDATE_WAIT : 0); |
|
|