Skip to content

Commit

Permalink
netfs, fscache: Move fs/fscache/* into fs/netfs/
Browse files Browse the repository at this point in the history
There's a problem with dependencies between netfslib and fscache as each
wants to access some functions of the other.  Deal with this by moving
fs/fscache/* into fs/netfs/ and renaming those files to begin with
"fscache-".

For the moment, the moved files are changed as little as possible and an
fscache module is still built.  A subsequent patch will integrate them.

Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
cc: Christian Brauner <christian@brauner.io>
cc: linux-fsdevel@vger.kernel.org
cc: linux-cachefs@redhat.com
David Howells committed Dec 24, 2023
1 parent 2daa640 commit 47757ea
Showing 17 changed files with 73 additions and 69 deletions.
21 changes: 13 additions & 8 deletions MAINTAINERS
Original file line number Diff line number Diff line change
@@ -8133,6 +8133,19 @@ S: Supported
F: fs/iomap/
F: include/linux/iomap.h

FILESYSTEMS [NETFS LIBRARY]
M: David Howells <dhowells@redhat.com>
L: linux-cachefs@redhat.com (moderated for non-subscribers)
L: linux-fsdevel@vger.kernel.org
S: Supported
F: Documentation/filesystems/caching/
F: Documentation/filesystems/netfs_library.rst
F: fs/netfs/
F: include/linux/fscache*.h
F: include/linux/netfs.h
F: include/trace/events/fscache.h
F: include/trace/events/netfs.h

FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER
M: Riku Voipio <riku.voipio@iki.fi>
L: linux-hwmon@vger.kernel.org
@@ -8567,14 +8580,6 @@ F: Documentation/power/freezing-of-tasks.rst
F: include/linux/freezer.h
F: kernel/freezer.c

FS-CACHE: LOCAL CACHING FOR NETWORK FILESYSTEMS
M: David Howells <dhowells@redhat.com>
L: linux-cachefs@redhat.com (moderated for non-subscribers)
S: Supported
F: Documentation/filesystems/caching/
F: fs/fscache/
F: include/linux/fscache*.h

FSCRYPT: FILE SYSTEM LEVEL ENCRYPTION SUPPORT
M: Eric Biggers <ebiggers@kernel.org>
M: Theodore Y. Ts'o <tytso@mit.edu>
1 change: 0 additions & 1 deletion fs/Kconfig
Original file line number Diff line number Diff line change
@@ -140,7 +140,6 @@ source "fs/overlayfs/Kconfig"
menu "Caches"

source "fs/netfs/Kconfig"
source "fs/fscache/Kconfig"
source "fs/cachefiles/Kconfig"

endmenu
1 change: 0 additions & 1 deletion fs/Makefile
Original file line number Diff line number Diff line change
@@ -60,7 +60,6 @@ obj-$(CONFIG_DLM) += dlm/

# Do not add any filesystems before this line
obj-$(CONFIG_NETFS_SUPPORT) += netfs/
obj-$(CONFIG_FSCACHE) += fscache/
obj-$(CONFIG_REISERFS_FS) += reiserfs/
obj-$(CONFIG_EXT4_FS) += ext4/
# We place ext4 before ext2 so that clean ext3 root fs's do NOT mount using the
40 changes: 0 additions & 40 deletions fs/fscache/Kconfig

This file was deleted.

16 changes: 0 additions & 16 deletions fs/fscache/Makefile

This file was deleted.

39 changes: 39 additions & 0 deletions fs/netfs/Kconfig
Original file line number Diff line number Diff line change
@@ -21,3 +21,42 @@ config NETFS_STATS
multi-CPU system these may be on cachelines that keep bouncing
between CPUs. On the other hand, the stats are very useful for
debugging purposes. Saying 'Y' here is recommended.

config FSCACHE
tristate "General filesystem local caching manager"
select NETFS_SUPPORT
help
This option enables a generic filesystem caching manager that can be
used by various network and other filesystems to cache data locally.
Different sorts of caches can be plugged in, depending on the
resources available.

See Documentation/filesystems/caching/fscache.rst for more information.

config FSCACHE_STATS
bool "Gather statistical information on local caching"
depends on FSCACHE && PROC_FS
select NETFS_STATS
help
This option causes statistical information to be gathered on local
caching and exported through file:

/proc/fs/fscache/stats

The gathering of statistics adds a certain amount of overhead to
execution as there are a quite a few stats gathered, and on a
multi-CPU system these may be on cachelines that keep bouncing
between CPUs. On the other hand, the stats are very useful for
debugging purposes. Saying 'Y' here is recommended.

See Documentation/filesystems/caching/fscache.rst for more information.

config FSCACHE_DEBUG
bool "Debug FS-Cache"
depends on FSCACHE
help
This permits debugging to be dynamically enabled in the local caching
management module. If this is set, the debugging output may be
enabled by setting bits in /sys/modules/fscache/parameter/debug.

See Documentation/filesystems/caching/fscache.rst for more information.
14 changes: 13 additions & 1 deletion fs/netfs/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# SPDX-License-Identifier: GPL-2.0

fscache-y := \
fscache_cache.o \
fscache_cookie.o \
fscache_io.o \
fscache_main.o \
fscache_volume.o

fscache-$(CONFIG_PROC_FS) += fscache_proc.o
fscache-$(CONFIG_FSCACHE_STATS) += fscache_stats.o

obj-$(CONFIG_FSCACHE) := fscache.o

netfs-y := \
buffered_read.o \
io.o \
@@ -9,4 +21,4 @@ netfs-y := \

netfs-$(CONFIG_NETFS_STATS) += stats.o

obj-$(CONFIG_NETFS_SUPPORT) := netfs.o
obj-$(CONFIG_NETFS_SUPPORT) += netfs.o
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
5 changes: 5 additions & 0 deletions fs/netfs/internal.h
Original file line number Diff line number Diff line change
@@ -5,9 +5,12 @@
* Written by David Howells (dhowells@redhat.com)
*/

#include <linux/slab.h>
#include <linux/seq_file.h>
#include <linux/netfs.h>
#include <linux/fscache.h>
#include <trace/events/netfs.h>
#include "fscache_internal.h"

#ifdef pr_fmt
#undef pr_fmt
@@ -107,6 +110,7 @@ static inline bool netfs_is_cache_enabled(struct netfs_inode *ctx)
/*
* debug tracing
*/
#if 0
#define dbgprintk(FMT, ...) \
printk("[%-6.6s] "FMT"\n", current->comm, ##__VA_ARGS__)

@@ -143,3 +147,4 @@ do { \
#define _leave(FMT, ...) no_printk("<== %s()"FMT"", __func__, ##__VA_ARGS__)
#define _debug(FMT, ...) no_printk(FMT, ##__VA_ARGS__)
#endif
#endif
5 changes: 3 additions & 2 deletions fs/netfs/main.c
Original file line number Diff line number Diff line change
@@ -8,8 +8,8 @@
#include <linux/module.h>
#include <linux/export.h>
#include "internal.h"
#define CREATE_TRACE_POINTS
#include <trace/events/netfs.h>
//#define CREATE_TRACE_POINTS
//#include <trace/events/netfs.h>

MODULE_DESCRIPTION("Network fs support");
MODULE_AUTHOR("Red Hat, Inc.");
@@ -18,3 +18,4 @@ MODULE_LICENSE("GPL");
unsigned netfs_debug;
module_param_named(debug, netfs_debug, uint, S_IWUSR | S_IRUGO);
MODULE_PARM_DESC(netfs_debug, "Netfs support debugging mask");

0 comments on commit 47757ea

Please sign in to comment.