mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
netfs: Restore selective debug mask handling
The netfs debug macros test only whether netfs_debug is nonzero.
Consequently, selecting one debug point enables every entry, exit and
general debug message.
Documentation/filesystems/caching/fscache.rst and the NETFS_DEBUG
Kconfig help still describe /sys/module/netfs/parameters/debug as a
bitmask of per-stream function entry, exit and general debugging
points, and the fscache_*.c files still define FSCACHE_DEBUG_LEVEL,
but nothing has decoded either since the mask handling was dropped
when FS-Cache was folded into netfs.
Restore the per-level and per-point mask decoding. Files that do not
define FSCACHE_DEBUG_LEVEL, which includes the netfs core, fall under
the cache management stream, the same default the FS-Cache macros had.
Fixes: 915cd30cde ("netfs, fscache: Combine fscache with netfs")
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
Link: https://patch.msgid.link/20260905051738.11317-1-kmehltretter@gmail.com
Signed-off-by: Christian Brauner (Amutable) <brauner@kernel.org>
This commit is contained in:
parent
86b318cd83
commit
62400ce406
|
|
@ -517,6 +517,32 @@ void fscache_create_volume(struct fscache_volume *volume, bool wait);
|
|||
#define kleave(FMT, ...) dbgprintk("<== %s()"FMT"", __func__, ##__VA_ARGS__)
|
||||
#define kdebug(FMT, ...) dbgprintk(FMT, ##__VA_ARGS__)
|
||||
|
||||
#define FSCACHE_DEBUG_CACHE 0
|
||||
#define FSCACHE_DEBUG_COOKIE 1
|
||||
#define FSCACHE_DEBUG_OBJECT 2
|
||||
#define FSCACHE_DEBUG_OPERATION 3
|
||||
|
||||
#define FSCACHE_POINT_ENTER 1
|
||||
#define FSCACHE_POINT_LEAVE 2
|
||||
#define FSCACHE_POINT_DEBUG 4
|
||||
|
||||
#ifndef FSCACHE_DEBUG_LEVEL
|
||||
#define FSCACHE_DEBUG_LEVEL CACHE
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Determine whether a particular optional debugging point should be logged.
|
||||
* Three levels of indirection are needed to expand FSCACHE_DEBUG_LEVEL before
|
||||
* joining it with its prefix.
|
||||
*/
|
||||
#define ____do_kdebug(LEVEL, POINT) \
|
||||
unlikely(netfs_debug & \
|
||||
(FSCACHE_POINT_##POINT << (FSCACHE_DEBUG_ ## LEVEL * 3)))
|
||||
#define ___do_kdebug(LEVEL, POINT) \
|
||||
____do_kdebug(LEVEL, POINT)
|
||||
#define __do_kdebug(POINT) \
|
||||
___do_kdebug(FSCACHE_DEBUG_LEVEL, POINT)
|
||||
|
||||
#ifdef __KDEBUG
|
||||
#define _enter(FMT, ...) kenter(FMT, ##__VA_ARGS__)
|
||||
#define _leave(FMT, ...) kleave(FMT, ##__VA_ARGS__)
|
||||
|
|
@ -525,19 +551,19 @@ void fscache_create_volume(struct fscache_volume *volume, bool wait);
|
|||
#elif defined(CONFIG_NETFS_DEBUG)
|
||||
#define _enter(FMT, ...) \
|
||||
do { \
|
||||
if (netfs_debug) \
|
||||
if (__do_kdebug(ENTER)) \
|
||||
kenter(FMT, ##__VA_ARGS__); \
|
||||
} while (0)
|
||||
|
||||
#define _leave(FMT, ...) \
|
||||
do { \
|
||||
if (netfs_debug) \
|
||||
if (__do_kdebug(LEAVE)) \
|
||||
kleave(FMT, ##__VA_ARGS__); \
|
||||
} while (0)
|
||||
|
||||
#define _debug(FMT, ...) \
|
||||
do { \
|
||||
if (netfs_debug) \
|
||||
if (__do_kdebug(DEBUG)) \
|
||||
kdebug(FMT, ##__VA_ARGS__); \
|
||||
} while (0)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user