[PATCH 00/11] fscache, cachefiles: Rewrite fixes/updates

From: David Howells
Date: Tue Jan 18 2022 - 08:53:07 EST



Here's a set of fixes and minor updates for the fscache rewrite[1]:

(1) Fix mishandling of volume collisions (the wait condition is inverted
and so it was only waiting if the volume collision was already
resolved).

And for cachefiles, including addressing some of Jeff Layton's review
comments:

(2) Fix miscalculation of whether there's space available.

(3) Make sure a default cache name is set on a cache if the user hasn't
set one by the time they bind the cache.

(4) Adjust the way the backing inode is presented in tracepoints, add a
tracepoint for mkdir and trace directory lookup.

(5) Trace failure to set the active file mark.

(6) Add explanation of the checks made on the backing filesystem.

(7) Check that the backing filesystem supports tmpfile.

(8) Document how the page-release cancellation of the read-skip
optimisation works.

(9) Add an IS_KERNEL_FILE() check macro for the S_KERNEL_FILE inode flag.

And I've included a change for netfslib:

(10) Make ops->init_rreq() optional.

I've also added the patch to rewrite cifs's fscache indexing.


Link: https://lore.kernel.org/r/164021479106.640689.17404516570194656552.stgit@xxxxxxxxxxxxxxxxxxxxxx/ [1]

---
David Howells (9):
fscache: Fix the volume collision wait condition
cachefiles: Calculate the blockshift in terms of bytes, not pages
cachefiles: Make some tracepoint adjustments
cachefiles: Trace active-mark failure
cachefiles: Explain checks in a comment
cachefiles: Check that the backing filesystem supports tmpfiles
fscache: Add a comment explaining how page-release optimisation works
vfs, fscache: Add an IS_KERNEL_FILE() macro for the S_KERNEL_FILE flag
cifs: Support fscache indexing rewrite

Jeffle Xu (2):
cachefiles: set default tag name if it's unspecified
netfs: Make ops->init_rreq() optional


fs/cachefiles/cache.c | 17 +-
fs/cachefiles/daemon.c | 11 +
fs/cachefiles/internal.h | 2 +-
fs/cachefiles/io.c | 2 +-
fs/cachefiles/namei.c | 18 +-
fs/ceph/addr.c | 5 -
fs/cifs/Kconfig | 2 +-
fs/cifs/Makefile | 2 +-
fs/cifs/cache.c | 105 ----------
fs/cifs/cifsfs.c | 19 +-
fs/cifs/cifsglob.h | 5 +-
fs/cifs/connect.c | 15 +-
fs/cifs/dir.c | 5 +
fs/cifs/file.c | 70 ++++---
fs/cifs/fscache.c | 333 +++++++-----------------------
fs/cifs/fscache.h | 126 ++++-------
fs/cifs/inode.c | 19 +-
fs/namei.c | 2 +-
fs/netfs/read_helper.c | 3 +-
include/linux/fs.h | 1 +
include/linux/fscache.h | 5 +
include/trace/events/cachefiles.h | 103 ++++++---
22 files changed, 313 insertions(+), 557 deletions(-)
delete mode 100644 fs/cifs/cache.c