View | Details | Raw Unified | Return to bug 230258 | Differences between
and this patch

Collapse All | Expand All

(-)sys/fs/fuse/fuse_vnops.c (+19 lines)
Lines 823-828 Link Here
823
823
824
		struct fuse_entry_out *feo = NULL;
824
		struct fuse_entry_out *feo = NULL;
825
		struct fuse_attr *fattr = NULL;
825
		struct fuse_attr *fattr = NULL;
826
		struct fuse_vnode_data *fvdat = NULL;
826
827
827
		if (op == FUSE_GETATTR) {
828
		if (op == FUSE_GETATTR) {
828
			fattr = &((struct fuse_attr_out *)fdi.answ)->attr;
829
			fattr = &((struct fuse_attr_out *)fdi.answ)->attr;
Lines 971-976 Link Here
971
			cache_attrs(*vpp, (struct fuse_entry_out *)fdi.answ);
972
			cache_attrs(*vpp, (struct fuse_entry_out *)fdi.answ);
972
		}
973
		}
973
974
975
		fvdat = VTOFUD(*vpp);
976
977
		if (vnode_isreg(*vpp) && (fvdat->flag & FN_SIZECHANGE) == 0) {
978
			/*
979
			 * This is for those cases when the file size changed without us
980
			 * knowing, and we want to catch up.
981
			 */
982
			off_t new_filesize;
983
			if (op == FUSE_GETATTR) {
984
				new_filesize = ((struct fuse_attr_out *)fdi.answ)->attr.size;
985
			} else {
986
				new_filesize = ((struct fuse_entry_out *)fdi.answ)->attr.size;
987
			}
988
989
			if (fvdat->filesize != new_filesize) {
990
				fuse_vnode_setsize(*vpp, cred, new_filesize);
991
			}
992
		}
974
		/* Insert name into cache if appropriate. */
993
		/* Insert name into cache if appropriate. */
975
994
976
		/*
995
		/*

Return to bug 230258