Commit 8c56e03d authored by Miklos Szeredi's avatar Miklos Szeredi
Browse files

fuse: don't bump attr_version in cached write



The attribute version in fuse_inode should be updated whenever the
attributes might have changed on the server.  In case of cached writes this
is not the case, so updating the attr_version is unnecessary and could
possibly affect performance.

Open code the remaining part of fuse_write_update_size().

Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
parent fa5eee57
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -2309,15 +2309,18 @@ static int fuse_write_end(struct file *file, struct address_space *mapping,
	if (!copied)
		goto unlock;

	pos += copied;
	if (!PageUptodate(page)) {
		/* Zero any unwritten bytes at the end of the page */
		size_t endoff = (pos + copied) & ~PAGE_MASK;
		size_t endoff = pos & ~PAGE_MASK;
		if (endoff)
			zero_user_segment(page, endoff, PAGE_SIZE);
		SetPageUptodate(page);
	}

	fuse_write_update_size(inode, pos + copied);
	if (pos > inode->i_size)
		i_size_write(inode, pos);

	set_page_dirty(page);

unlock: