[PATCH] cachefiles: allocate static minor for /dev/cachefiles

From: Marcel Holtmann
Date: Thu Jun 15 2023 - 12:17:13 EST


The cachefiles misc character device uses MISC_DYNAMIC_MINOR and thus
doesn't support module auto-loading. Assign a static minor number for it
and provide appropriate module aliases for it. This is enough for kmod to
create the /dev/cachefiles device node on startup and facility module
auto-loading.

Signed-off-by: Marcel Holtmann <marcel@xxxxxxxxxxxx>
---
Documentation/admin-guide/devices.txt | 3 ++-
fs/cachefiles/main.c | 4 +++-
include/linux/miscdevice.h | 1 +
3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/Documentation/admin-guide/devices.txt b/Documentation/admin-guide/devices.txt
index 06c525e01ea5..21b2dda10006 100644
--- a/Documentation/admin-guide/devices.txt
+++ b/Documentation/admin-guide/devices.txt
@@ -376,8 +376,9 @@
240 = /dev/userio Serio driver testing device
241 = /dev/vhost-vsock Host kernel driver for virtio vsock
242 = /dev/rfkill Turning off radio transmissions (rfkill)
+ 243 = /dev/cachefiles Filesystem caching on files

- 243-254 Reserved for local use
+ 244-254 Reserved for local use
255 Reserved for MISC_DYNAMIC_MINOR

11 char Raw keyboard device (Linux/SPARC only)
diff --git a/fs/cachefiles/main.c b/fs/cachefiles/main.c
index 3f369c6f816d..eead7b5016a7 100644
--- a/fs/cachefiles/main.c
+++ b/fs/cachefiles/main.c
@@ -30,11 +30,13 @@ MODULE_PARM_DESC(cachefiles_debug, "CacheFiles debugging mask");
MODULE_DESCRIPTION("Mounted-filesystem based cache");
MODULE_AUTHOR("Red Hat, Inc.");
MODULE_LICENSE("GPL");
+MODULE_ALIAS("devname:cachefiles");
+MODULE_ALIAS_MISCDEV(CACHEFILES_MINOR);

struct kmem_cache *cachefiles_object_jar;

static struct miscdevice cachefiles_dev = {
- .minor = MISC_DYNAMIC_MINOR,
+ .minor = CACHEFILES_MINOR,
.name = "cachefiles",
.fops = &cachefiles_daemon_fops,
};
diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h
index c0fea6ca5076..d7f989f593b0 100644
--- a/include/linux/miscdevice.h
+++ b/include/linux/miscdevice.h
@@ -71,6 +71,7 @@
#define USERIO_MINOR 240
#define VHOST_VSOCK_MINOR 241
#define RFKILL_MINOR 242
+#define CACHEFILES_MINOR 243
#define MISC_DYNAMIC_MINOR 255

struct device;
--
2.40.1