Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 50fd8010 authored by Eric Van Hensbergen's avatar Eric Van Hensbergen
Browse files

9p: soften invalidation in loose_mode



Loose mode in 9p utilizes the page cache without respecting coherency with
the server.  Any writes previously invaldiated the entire mapping for a file.
This patch softens the behavior to only invalidate the region of the actual
write.

Signed-off-by: default avatarEric Van Hensbergen <ericvh@gmail.com>
parent ba17674f
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -162,15 +162,17 @@ v9fs_file_write(struct file *filp, const char __user * data,

	fid = filp->private_data;
	ret = p9_client_uwrite(fid, data, *offset, count);
	if (ret > 0)
	if (ret > 0) {
		invalidate_inode_pages2_range(inode->i_mapping, *offset,
								*offset+ret);
		*offset += ret;
	}

	if (*offset > inode->i_size) {
		inode->i_size = *offset;
		inode->i_blocks = (inode->i_size + 512 - 1) >> 9;
	}

	invalidate_inode_pages2(inode->i_mapping);
	return ret;
}