fs/9p: remove writeback fid and fix per-file modes
authorEric Van Hensbergen <ericvh@kernel.org>
Mon, 27 Mar 2023 02:06:37 +0000 (02:06 +0000)
committerEric Van Hensbergen <ericvh@kernel.org>
Mon, 27 Mar 2023 02:33:48 +0000 (02:33 +0000)
commit1543b4c5071c54d76aad7a7a26a6e43082269b0c
tree2cfdbff4d66d6e793a3d64bb6da9260a73e92773
parent6deffc8924b59df173da5fc7a9c96d3717cd9e96
fs/9p: remove writeback fid and fix per-file modes

This patch removes the creating of an additional writeback_fid
for opened files.  The patch addresses problems when files
were opened write-only or getattr on files with dirty caches.

This patch also incorporates information about cache behavior
in the fid for every file.  This allows us to reflect cache
behavior from mount flags, open mode, and information from
the server to inform readahead and writeback behavior.

This includes adding support for a 9p semantic that qid.version==0
is used to mark a file as non-cachable which is important for
synthetic files.  This may have a side-effect of not supporting
caching on certain legacy file servers that do not properly set
qid.version.  There is also now a mount flag which can disable
the qid.version behavior.

Signed-off-by: Eric Van Hensbergen <ericvh@kernel.org>
fs/9p/fid.c
fs/9p/fid.h
fs/9p/v9fs.h
fs/9p/vfs_addr.c
fs/9p/vfs_file.c
fs/9p/vfs_inode.c
fs/9p/vfs_inode_dotl.c
fs/9p/vfs_super.c