Changeset View
Changeset View
Standalone View
Standalone View
head/sys/fs/fuse/fuse_node.c
Show First 20 Lines • Show All 444 Lines • ▼ Show 20 Lines | |||||
int | int | ||||
fuse_vnode_size(struct vnode *vp, off_t *filesize, struct ucred *cred, | fuse_vnode_size(struct vnode *vp, off_t *filesize, struct ucred *cred, | ||||
struct thread *td) | struct thread *td) | ||||
{ | { | ||||
struct fuse_vnode_data *fvdat = VTOFUD(vp); | struct fuse_vnode_data *fvdat = VTOFUD(vp); | ||||
int error = 0; | int error = 0; | ||||
if (!(fvdat->flag & FN_SIZECHANGE) && | if (!(fvdat->flag & FN_SIZECHANGE) && | ||||
(VTOVA(vp) == NULL || fvdat->cached_attrs.va_size == VNOVAL)) | (!fuse_vnode_attr_cache_valid(vp) || | ||||
fvdat->cached_attrs.va_size == VNOVAL)) | |||||
error = fuse_internal_do_getattr(vp, NULL, cred, td); | error = fuse_internal_do_getattr(vp, NULL, cred, td); | ||||
if (!error) | if (!error) | ||||
*filesize = fvdat->cached_attrs.va_size; | *filesize = fvdat->cached_attrs.va_size; | ||||
return error; | return error; | ||||
} | } | ||||
Show All 40 Lines |