On Thu 10-10-24 19:25:42, Ye Bin wrote:Well, I'm analyzing what files are still open and the file system can't be unmounted.
From: Ye Bin <yebin10@xxxxxxxxxx>I don't quite understand the use case you mention here. Can you explain it
In order to better analyze the issue of file system uninstallation caused
by kernel module opening files, it is necessary to perform dentry recycling
a bit more (that being said I've needed dropping caches for a particular sb
myself a few times for debugging purposes so I generally agree it is a
useful feature).
That's a really good idea. I think by specifying bdev "major & minor", you can reclaimon a single file system. But now, apart from global dentry recycling, it isI think specifying bdev major & minor number is not a great interface these
not supported to do dentry recycling on a single file system separately.
This feature has usage scenarios in problem localization scenarios.At the
same time, it also provides users with a slightly fine-grained
pagecache/entry recycling mechanism.
This patch supports the recycling of pagecache/entry for individual file
systems.
Signed-off-by: Ye Bin <yebin10@xxxxxxxxxx>
---
fs/drop_caches.c | 43 +++++++++++++++++++++++++++++++++++++++++++
include/linux/mm.h | 2 ++
kernel/sysctl.c | 9 +++++++++
3 files changed, 54 insertions(+)
diff --git a/fs/drop_caches.c b/fs/drop_caches.c
index d45ef541d848..99d412cf3e52 100644
--- a/fs/drop_caches.c
+++ b/fs/drop_caches.c
@@ -77,3 +77,46 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write,
}
return 0;
}
+
+int drop_fs_caches_sysctl_handler(const struct ctl_table *table, int write,
+ void *buffer, size_t *length, loff_t *ppos)
+{
+ unsigned int major, minor;
+ unsigned int ctl;
+ struct super_block *sb;
+ static int stfu;
+
+ if (!write)
+ return 0;
+
+ if (sscanf(buffer, "%u:%u:%u", &major, &minor, &ctl) != 3)
+ return -EINVAL;
days. In particular for filesystems which are not bdev based such as NFS. I
think specifying path to some file/dir in the filesystem is nicer and you
can easily resolve that to sb here as well.
Honza