eb497943fa
Convert the 9p filesystem to use the netfs helper lib to handle readpage, readahead and write_begin, converting those into a common issue_op for the filesystem itself to handle. The netfs helper lib also handles reading from fscache if a cache is available, and interleaving reads from both sources. This change also switches from the old fscache I/O API to the new one, meaning that fscache no longer keeps track of netfs pages and instead does async DIO between the backing files and the 9p file pagecache. As a part of this change, the handling of PG_fscache changes. It now just means that the cache has a write I/O operation in progress on a page (PG_locked is used for a read I/O op). Note that this is a cut-down version of the fscache rewrite and does not change any of the cookie and cache coherency handling. Changes ======= ver #4: - Rebase on top of folios. - Don't use wait_on_page_bit_killable(). ver #3: - v9fs_req_issue_op() needs to terminate the subrequest. - v9fs_write_end() needs to call SetPageUptodate() a bit more often. - It's not CONFIG_{AFS,V9FS}_FSCACHE[1] - v9fs_init_rreq() should take a ref on the p9_fid and the cleanup should drop it [from Dominique Martinet]. Signed-off-by: David Howells <dhowells@redhat.com> Reviewed-and-tested-by: Dominique Martinet <asmadeus@codewreck.org> cc: v9fs-developer@lists.sourceforge.net cc: linux-cachefs@redhat.com Link: https://lore.kernel.org/r/YUm+xucHxED+1MJp@codewreck.org/ [1] Link: https://lore.kernel.org/r/163162772646.438332.16323773205855053535.stgit@warthog.procyon.org.uk/ # rfc Link: https://lore.kernel.org/r/163189109885.2509237.7153668924503399173.stgit@warthog.procyon.org.uk/ # rfc v2 Link: https://lore.kernel.org/r/163363943896.1980952.1226527304649419689.stgit@warthog.procyon.org.uk/ # v3 Link: https://lore.kernel.org/r/163551662876.1877519.14706391695553204156.stgit@warthog.procyon.org.uk/ # v4 Link: https://lore.kernel.org/r/163584179557.4023316.11089762304657644342.stgit@warthog.procyon.org.uk # rebase on folio Signed-off-by: Dominique Martinet <asmadeus@codewreck.org>
46 lines
1.2 KiB
Plaintext
46 lines
1.2 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
config 9P_FS
|
|
tristate "Plan 9 Resource Sharing Support (9P2000)"
|
|
depends on INET && NET_9P
|
|
select NETFS_SUPPORT
|
|
help
|
|
If you say Y here, you will get experimental support for
|
|
Plan 9 resource sharing via the 9P2000 protocol.
|
|
|
|
See <http://v9fs.sf.net> for more information.
|
|
|
|
If unsure, say N.
|
|
|
|
if 9P_FS
|
|
config 9P_FSCACHE
|
|
bool "Enable 9P client caching support"
|
|
depends on 9P_FS=m && FSCACHE || 9P_FS=y && FSCACHE=y
|
|
help
|
|
Choose Y here to enable persistent, read-only local
|
|
caching support for 9p clients using FS-Cache
|
|
|
|
|
|
config 9P_FS_POSIX_ACL
|
|
bool "9P POSIX Access Control Lists"
|
|
select FS_POSIX_ACL
|
|
help
|
|
POSIX Access Control Lists (ACLs) support permissions for users and
|
|
groups beyond the owner/group/world scheme.
|
|
|
|
If you don't know what Access Control Lists are, say N
|
|
|
|
endif
|
|
|
|
|
|
config 9P_FS_SECURITY
|
|
bool "9P Security Labels"
|
|
depends on 9P_FS
|
|
help
|
|
Security labels support alternative access control models
|
|
implemented by security modules like SELinux. This option
|
|
enables an extended attribute handler for file security
|
|
labels in the 9P filesystem.
|
|
|
|
If you are not using a security module that requires using
|
|
extended attributes for file security labels, say N.
|