Changeset View
Changeset View
Standalone View
Standalone View
sys/fs/fuse/fuse_io.c
Show First 20 Lines • Show All 356 Lines • ▼ Show 20 Lines | while (uio->uio_resid > 0) { | ||||
diff = chunksize - ((struct fuse_write_out *)fdi.answ)->size; | diff = chunksize - ((struct fuse_write_out *)fdi.answ)->size; | ||||
if (diff < 0) { | if (diff < 0) { | ||||
err = EINVAL; | err = EINVAL; | ||||
break; | break; | ||||
} | } | ||||
uio->uio_resid += diff; | uio->uio_resid += diff; | ||||
uio->uio_offset -= diff; | uio->uio_offset -= diff; | ||||
if (uio->uio_offset > fvdat->filesize) | if (uio->uio_offset > fvdat->filesize && | ||||
fuse_data_cache_enable) { | |||||
fuse_vnode_setsize(vp, cred, uio->uio_offset); | fuse_vnode_setsize(vp, cred, uio->uio_offset); | ||||
fvdat->flag &= ~FN_SIZECHANGE; | |||||
} | |||||
} | } | ||||
fdisp_destroy(&fdi); | fdisp_destroy(&fdi); | ||||
return (err); | return (err); | ||||
} | } | ||||
static int | static int | ||||
▲ Show 20 Lines • Show All 441 Lines • Show Last 20 Lines |