]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
fs: fuse: add dev id to /dev/fuse fdinfo
authorChen Linxuan <chenlinxuan@uniontech.com>
Tue, 13 May 2025 04:20:49 +0000 (12:20 +0800)
committerMiklos Szeredi <mszeredi@redhat.com>
Thu, 15 May 2025 07:43:19 +0000 (09:43 +0200)
This commit add fuse connection device id to
fdinfo of opened /dev/fuse files.

Related discussions can be found at links below.

Link: https://lore.kernel.org/all/CAJfpegvEYUgEbpATpQx8NqVR33Mv-VK96C+gbTag1CEUeBqvnA@mail.gmail.com/
Signed-off-by: Chen Linxuan <chenlinxuan@uniontech.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/fuse/dev.c

index 155bb6aeaef57f74687d5c3f4872bd284eb2533b..07e08362d5b911c66199f0797f9f1f522e67a128 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/swap.h>
 #include <linux/splice.h>
 #include <linux/sched.h>
+#include <linux/seq_file.h>
 
 #define CREATE_TRACE_POINTS
 #include "fuse_trace.h"
@@ -2618,6 +2619,17 @@ static long fuse_dev_ioctl(struct file *file, unsigned int cmd,
        }
 }
 
+#ifdef CONFIG_PROC_FS
+static void fuse_dev_show_fdinfo(struct seq_file *seq, struct file *file)
+{
+       struct fuse_dev *fud = fuse_get_dev(file);
+       if (!fud)
+               return;
+
+       seq_printf(seq, "fuse_connection:\t%u\n", fud->fc->dev);
+}
+#endif
+
 const struct file_operations fuse_dev_operations = {
        .owner          = THIS_MODULE,
        .open           = fuse_dev_open,
@@ -2633,6 +2645,9 @@ const struct file_operations fuse_dev_operations = {
 #ifdef CONFIG_FUSE_IO_URING
        .uring_cmd      = fuse_uring_cmd,
 #endif
+#ifdef CONFIG_PROC_FS
+       .show_fdinfo    = fuse_dev_show_fdinfo,
+#endif
 };
 EXPORT_SYMBOL_GPL(fuse_dev_operations);