* [PATCH v4 0/3] virtiofs: export filesystem tags through sysfs
@ 2024-02-13 0:11 Stefan Hajnoczi
2024-02-13 0:11 ` [PATCH v4 1/3] virtiofs: forbid newlines in tags Stefan Hajnoczi
` (3 more replies)
0 siblings, 4 replies; 9+ messages in thread
From: Stefan Hajnoczi @ 2024-02-13 0:11 UTC (permalink / raw)
To: linux-fsdevel
Cc: miklos, Greg KH, Alyssa Ross, mzxreary, gmaglione, vgoyal,
virtio-fs, Stefan Hajnoczi
v4:
- Create kset before registering virtio driver because the kset needed in
virtio_fs_probe(). Solves the empty /sys/fs/virtiofs bug. [Vivek]
v3:
- Use dev_dbg() to avoid spamming logs [Greg]
- Fix 644 mode on "tag" attr and use __ATTR_RO() [Greg]
- Use kset_uevent_ops and eliminate explicit KOBJ_REMOVE [Greg]
v2:
- Vivek mentioned that he didn't have time to work on this patch series
recently so I gave it a shot.
- Information is now exposed in /sys/fs/virtiofs/ whereas before it was part of
the generic virtio device kobject, which didn't really fit.
Userspace needs a way to enumerate available virtiofs filesystems and detect
when they are hotplugged or unplugged. This would allow systemd to wait for a
virtiofs filesystem during boot, for example.
This patch series adds the following in sysfs:
/sys/fs/virtiofs/<n>/tag - unique identifier for mount(8)
/sys/fs/virtiofs/<n>/device - symlink to virtio device
A uevent is emitted when virtiofs devices are hotplugged or unplugged:
KERNEL[111.113221] add /fs/virtiofs/2 (virtiofs)
ACTION=add
DEVPATH=/fs/virtiofs/2
SUBSYSTEM=virtiofs
TAG=test
KERNEL[165.527167] remove /fs/virtiofs/2 (virtiofs)
ACTION=remove
DEVPATH=/fs/virtiofs/2
SUBSYSTEM=virtiofs
TAG=test
Stefan Hajnoczi (3):
virtiofs: forbid newlines in tags
virtiofs: export filesystem tags through sysfs
virtiofs: emit uevents on filesystem events
fs/fuse/virtio_fs.c | 137 ++++++++++++++++----
Documentation/ABI/testing/sysfs-fs-virtiofs | 11 ++
2 files changed, 126 insertions(+), 22 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-fs-virtiofs
--
2.43.0
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH v4 1/3] virtiofs: forbid newlines in tags 2024-02-13 0:11 [PATCH v4 0/3] virtiofs: export filesystem tags through sysfs Stefan Hajnoczi @ 2024-02-13 0:11 ` Stefan Hajnoczi 2024-02-13 0:11 ` [PATCH v4 2/3] virtiofs: export filesystem tags through sysfs Stefan Hajnoczi ` (2 subsequent siblings) 3 siblings, 0 replies; 9+ messages in thread From: Stefan Hajnoczi @ 2024-02-13 0:11 UTC (permalink / raw) To: linux-fsdevel Cc: miklos, Greg KH, Alyssa Ross, mzxreary, gmaglione, vgoyal, virtio-fs, Stefan Hajnoczi Newlines in virtiofs tags are awkward for users and potential vectors for string injection attacks. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- fs/fuse/virtio_fs.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c index 5f1be1da92ce..d84dacbdce2c 100644 --- a/fs/fuse/virtio_fs.c +++ b/fs/fuse/virtio_fs.c @@ -323,6 +323,16 @@ static int virtio_fs_read_tag(struct virtio_device *vdev, struct virtio_fs *fs) return -ENOMEM; memcpy(fs->tag, tag_buf, len); fs->tag[len] = '\0'; + + /* While the VIRTIO specification allows any character, newlines are + * awkward on mount(8) command-lines and cause problems in the sysfs + * "tag" attr and uevent TAG= properties. Forbid them. + */ + if (strchr(fs->tag, '\n')) { + dev_dbg(&vdev->dev, "refusing virtiofs tag with newline character\n"); + return -EINVAL; + } + return 0; } -- 2.43.0 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v4 2/3] virtiofs: export filesystem tags through sysfs 2024-02-13 0:11 [PATCH v4 0/3] virtiofs: export filesystem tags through sysfs Stefan Hajnoczi 2024-02-13 0:11 ` [PATCH v4 1/3] virtiofs: forbid newlines in tags Stefan Hajnoczi @ 2024-02-13 0:11 ` Stefan Hajnoczi 2024-02-23 18:55 ` kernel test robot 2024-02-26 23:09 ` kernel test robot 2024-02-13 0:11 ` [PATCH v4 3/3] virtiofs: emit uevents on filesystem events Stefan Hajnoczi 2024-02-13 21:32 ` [PATCH v4 0/3] virtiofs: export filesystem tags through sysfs Vivek Goyal 3 siblings, 2 replies; 9+ messages in thread From: Stefan Hajnoczi @ 2024-02-13 0:11 UTC (permalink / raw) To: linux-fsdevel Cc: miklos, Greg KH, Alyssa Ross, mzxreary, gmaglione, vgoyal, virtio-fs, Stefan Hajnoczi The virtiofs filesystem is mounted using a "tag" which is exported by the virtiofs device: # mount -t virtiofs <tag> /mnt The virtiofs driver knows about all the available tags but these are currently not exported to user space. People have asked for these tags to be exported to user space. Most recently Lennart Poettering has asked for it as he wants to scan the tags and mount virtiofs automatically in certain cases. https://gitlab.com/virtio-fs/virtiofsd/-/issues/128 This patch exports tags at /sys/fs/virtiofs/<N>/tag where N is the id of the virtiofs device. The filesystem tag can be obtained by reading this "tag" file. There is also a symlink at /sys/fs/virtiofs/<N>/device that points to the virtiofs device that exports this tag. This patch converts the existing struct virtio_fs into a full kobject. It already had a refcount so it's an easy change. The virtio_fs objects can then be exposed in a kset at /sys/fs/virtiofs/. Note that virtio_fs objects may live slightly longer than we wish for them to be exposed to userspace, so kobject_del() is called explicitly when the underlying virtio_device is removed. The virtio_fs object is freed when all references are dropped (e.g. active mounts) but disappears as soon as the virtiofs device is gone. Originally-by: Vivek Goyal <vgoyal@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- fs/fuse/virtio_fs.c | 112 ++++++++++++++++---- Documentation/ABI/testing/sysfs-fs-virtiofs | 11 ++ 2 files changed, 101 insertions(+), 22 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-fs-virtiofs diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c index d84dacbdce2c..99b6113bbd13 100644 --- a/fs/fuse/virtio_fs.c +++ b/fs/fuse/virtio_fs.c @@ -31,6 +31,9 @@ static DEFINE_MUTEX(virtio_fs_mutex); static LIST_HEAD(virtio_fs_instances); +/* The /sys/fs/virtio_fs/ kset */ +static struct kset *virtio_fs_kset; + enum { VQ_HIPRIO, VQ_REQUEST @@ -55,7 +58,7 @@ struct virtio_fs_vq { /* A virtio-fs device instance */ struct virtio_fs { - struct kref refcount; + struct kobject kobj; struct list_head list; /* on virtio_fs_instances */ char *tag; struct virtio_fs_vq *vqs; @@ -161,18 +164,40 @@ static inline void dec_in_flight_req(struct virtio_fs_vq *fsvq) complete(&fsvq->in_flight_zero); } -static void release_virtio_fs_obj(struct kref *ref) +static ssize_t tag_show(struct kobject *kobj, + struct kobj_attribute *attr, char *buf) { - struct virtio_fs *vfs = container_of(ref, struct virtio_fs, refcount); + struct virtio_fs *fs = container_of(kobj, struct virtio_fs, kobj); + + return sysfs_emit(buf, fs->tag); +} + +static struct kobj_attribute virtio_fs_tag_attr = __ATTR_RO(tag); + +static struct attribute *virtio_fs_attrs[] = { + &virtio_fs_tag_attr.attr, + NULL +}; +ATTRIBUTE_GROUPS(virtio_fs); + +static void virtio_fs_ktype_release(struct kobject *kobj) +{ + struct virtio_fs *vfs = container_of(kobj, struct virtio_fs, kobj); kfree(vfs->vqs); kfree(vfs); } +static const struct kobj_type virtio_fs_ktype = { + .release = virtio_fs_ktype_release, + .sysfs_ops = &kobj_sysfs_ops, + .default_groups = virtio_fs_groups, +}; + /* Make sure virtiofs_mutex is held */ static void virtio_fs_put(struct virtio_fs *fs) { - kref_put(&fs->refcount, release_virtio_fs_obj); + kobject_put(&fs->kobj); } static void virtio_fs_fiq_release(struct fuse_iqueue *fiq) @@ -243,25 +268,44 @@ static void virtio_fs_start_all_queues(struct virtio_fs *fs) } /* Add a new instance to the list or return -EEXIST if tag name exists*/ -static int virtio_fs_add_instance(struct virtio_fs *fs) +static int virtio_fs_add_instance(struct virtio_device *vdev, + struct virtio_fs *fs) { struct virtio_fs *fs2; - bool duplicate = false; + int ret; mutex_lock(&virtio_fs_mutex); list_for_each_entry(fs2, &virtio_fs_instances, list) { - if (strcmp(fs->tag, fs2->tag) == 0) - duplicate = true; + if (strcmp(fs->tag, fs2->tag) == 0) { + mutex_unlock(&virtio_fs_mutex); + return -EEXIST; + } } - if (!duplicate) - list_add_tail(&fs->list, &virtio_fs_instances); + /* Use the virtio_device's index as a unique identifier, there is no + * need to allocate our own identifiers because the virtio_fs instance + * is only visible to userspace as long as the underlying virtio_device + * exists. + */ + fs->kobj.kset = virtio_fs_kset; + ret = kobject_add(&fs->kobj, NULL, "%d", vdev->index); + if (ret < 0) { + mutex_unlock(&virtio_fs_mutex); + return ret; + } + + ret = sysfs_create_link(&fs->kobj, &vdev->dev.kobj, "device"); + if (ret < 0) { + kobject_del(&fs->kobj); + mutex_unlock(&virtio_fs_mutex); + return ret; + } + + list_add_tail(&fs->list, &virtio_fs_instances); mutex_unlock(&virtio_fs_mutex); - if (duplicate) - return -EEXIST; return 0; } @@ -274,7 +318,7 @@ static struct virtio_fs *virtio_fs_find_instance(const char *tag) list_for_each_entry(fs, &virtio_fs_instances, list) { if (strcmp(fs->tag, tag) == 0) { - kref_get(&fs->refcount); + kobject_get(&fs->kobj); goto found; } } @@ -875,7 +919,7 @@ static int virtio_fs_probe(struct virtio_device *vdev) fs = kzalloc(sizeof(*fs), GFP_KERNEL); if (!fs) return -ENOMEM; - kref_init(&fs->refcount); + kobject_init(&fs->kobj, &virtio_fs_ktype); vdev->priv = fs; ret = virtio_fs_read_tag(vdev, fs); @@ -897,7 +941,7 @@ static int virtio_fs_probe(struct virtio_device *vdev) */ virtio_device_ready(vdev); - ret = virtio_fs_add_instance(fs); + ret = virtio_fs_add_instance(vdev, fs); if (ret < 0) goto out_vqs; @@ -906,11 +950,10 @@ static int virtio_fs_probe(struct virtio_device *vdev) out_vqs: virtio_reset_device(vdev); virtio_fs_cleanup_vqs(vdev); - kfree(fs->vqs); out: vdev->priv = NULL; - kfree(fs); + kobject_put(&fs->kobj); return ret; } @@ -934,6 +977,8 @@ static void virtio_fs_remove(struct virtio_device *vdev) mutex_lock(&virtio_fs_mutex); /* This device is going away. No one should get new reference */ list_del_init(&fs->list); + sysfs_remove_link(&fs->kobj, "device"); + kobject_del(&fs->kobj); virtio_fs_stop_all_queues(fs); virtio_fs_drain_all_queues_locked(fs); virtio_reset_device(vdev); @@ -1520,21 +1565,43 @@ static struct file_system_type virtio_fs_type = { .kill_sb = virtio_kill_sb, }; +static int __init virtio_fs_sysfs_init(void) +{ + virtio_fs_kset = kset_create_and_add("virtiofs", NULL, fs_kobj); + if (!virtio_fs_kset) + return -ENOMEM; + return 0; +} + +static void __exit virtio_fs_sysfs_exit(void) +{ + kset_unregister(virtio_fs_kset); + virtio_fs_kset = NULL; +} + static int __init virtio_fs_init(void) { int ret; + ret = virtio_fs_sysfs_init(); + if (ret < 0) + return ret; + ret = register_virtio_driver(&virtio_fs_driver); if (ret < 0) - return ret; + goto sysfs_exit; ret = register_filesystem(&virtio_fs_type); - if (ret < 0) { - unregister_virtio_driver(&virtio_fs_driver); - return ret; - } + if (ret < 0) + goto unregister_virtio_driver; return 0; + +unregister_virtio_driver: + unregister_virtio_driver(&virtio_fs_driver); +sysfs_exit: + virtio_fs_sysfs_exit(); + return ret; } module_init(virtio_fs_init); @@ -1542,6 +1609,7 @@ static void __exit virtio_fs_exit(void) { unregister_filesystem(&virtio_fs_type); unregister_virtio_driver(&virtio_fs_driver); + virtio_fs_sysfs_exit(); } module_exit(virtio_fs_exit); diff --git a/Documentation/ABI/testing/sysfs-fs-virtiofs b/Documentation/ABI/testing/sysfs-fs-virtiofs new file mode 100644 index 000000000000..4839dbce997e --- /dev/null +++ b/Documentation/ABI/testing/sysfs-fs-virtiofs @@ -0,0 +1,11 @@ +What: /sys/fs/virtiofs/<n>/tag +Date: Feb 2024 +Contact: virtio-fs@lists.linux.dev +Description: + [RO] The mount "tag" that can be used to mount this filesystem. + +What: /sys/fs/virtiofs/<n>/device +Date: Feb 2024 +Contact: virtio-fs@lists.linux.dev +Description: + Symlink to the virtio device that exports this filesystem. -- 2.43.0 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v4 2/3] virtiofs: export filesystem tags through sysfs 2024-02-13 0:11 ` [PATCH v4 2/3] virtiofs: export filesystem tags through sysfs Stefan Hajnoczi @ 2024-02-23 18:55 ` kernel test robot 2024-02-27 15:40 ` Stefan Hajnoczi 2024-02-26 23:09 ` kernel test robot 1 sibling, 1 reply; 9+ messages in thread From: kernel test robot @ 2024-02-23 18:55 UTC (permalink / raw) To: Stefan Hajnoczi; +Cc: oe-kbuild-all Hi Stefan, kernel test robot noticed the following build warnings: [auto build test WARNING on mszeredi-fuse/for-next] [also build test WARNING on linus/master v6.8-rc5 next-20240223] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Stefan-Hajnoczi/virtiofs-forbid-newlines-in-tags/20240213-081536 base: https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git for-next patch link: https://lore.kernel.org/r/20240213001149.904176-3-stefanha%40redhat.com patch subject: [PATCH v4 2/3] virtiofs: export filesystem tags through sysfs config: sh-randconfig-r131-20240223 (https://download.01.org/0day-ci/archive/20240224/202402240215.AhxvUkqt-lkp@intel.com/config) compiler: sh4-linux-gcc (GCC) 13.2.0 reproduce: (https://download.01.org/0day-ci/archive/20240224/202402240215.AhxvUkqt-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202402240215.AhxvUkqt-lkp@intel.com/ All warnings (new ones prefixed by >>, old ones prefixed by <<): WARNING: modpost: missing MODULE_DESCRIPTION() in vmlinux.o >> WARNING: modpost: vmlinux: section mismatch in reference: virtio_fs_init+0x78 (section: .init.text) -> ikconfig_cleanup (section: .exit.text) WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp437.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp737.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp869.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp949.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp1250.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp1251.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_ascii.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-2.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-9.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-14.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_koi8-r.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_utf8.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-cyrillic.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-inuit.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_ucs2_utils.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/binfmt_script.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/fat/fat.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/btrfs/btrfs.o WARNING: modpost: missing MODULE_DESCRIPTION() in security/keys/trusted-keys/trusted.o WARNING: modpost: missing MODULE_DESCRIPTION() in crypto/xor.o WARNING: modpost: missing MODULE_DESCRIPTION() in block/t10-pi.o WARNING: modpost: missing MODULE_DESCRIPTION() in lib/asn1_decoder.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/soc/ixp4xx/ixp4xx-qmgr.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/soc/ixp4xx/ixp4xx-npe.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/soc/qcom/spm.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/regulator/max20411-regulator.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/reset/hisilicon/hi6220_reset.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/tty/serial/8250/8250_pxa.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/tty/ttynull.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/char/hw_random/omap3-rom-rng.o WARNING: modpost: drivers/char/hw_random/mxc-rnga: section mismatch in reference: mxc_rnga_driver+0x4 (section: .data) -> mxc_rnga_remove (section: .exit.text) WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/base/regmap/regmap-w1.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mfd/pcf50633-gpio.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/nvme/common/nvme-auth.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/nvme/host/nvme-core.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/nvme/host/nvme-fabrics.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/nvme/target/nvmet.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/nvme/target/nvme-loop.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mtd/parsers/brcm_u-boot.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mtd/chips/cfi_util.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mtd/chips/cfi_cmdset_0020.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/input/touchscreen/cyttsp_i2c_common.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/input/matrix-keymap.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/i2c/busses/i2c-pxa.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/media/rc/rc-core.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/media/dvb-frontends/mb86a16.o WARNING: modpost: drivers/mmc/host/davinci_mmc: section mismatch in reference: davinci_mmcsd_driver+0x8 (section: .data) -> davinci_mmcsd_remove (section: .exit.text) WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mmc/core/mmc_core.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mmc/core/sdio_uart.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/devfreq/governor_simpleondemand.o WARNING: modpost: drivers/memory/emif: section mismatch in reference: emif_driver+0x4 (section: .data) -> emif_remove (section: .exit.text) WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/perf/arm_cspmu/ampere_cspmu.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/perf/arm-ccn.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/perf/fsl_imx8_ddr_perf.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hte/hte-tegra194-test.o WARNING: modpost: missing MODULE_DESCRIPTION() in sound/drivers/snd-pcmtest.o -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 2/3] virtiofs: export filesystem tags through sysfs 2024-02-23 18:55 ` kernel test robot @ 2024-02-27 15:40 ` Stefan Hajnoczi 0 siblings, 0 replies; 9+ messages in thread From: Stefan Hajnoczi @ 2024-02-27 15:40 UTC (permalink / raw) To: kernel test robot; +Cc: oe-kbuild-all [-- Attachment #1: Type: text/plain, Size: 6611 bytes --] On Sat, Feb 24, 2024 at 02:55:25AM +0800, kernel test robot wrote: > Hi Stefan, > > kernel test robot noticed the following build warnings: > > [auto build test WARNING on mszeredi-fuse/for-next] > [also build test WARNING on linus/master v6.8-rc5 next-20240223] > [If your patch is applied to the wrong git tree, kindly drop us a note. > And when submitting patch, we suggest to use '--base' as documented in > https://git-scm.com/docs/git-format-patch#_base_tree_information] > > url: https://github.com/intel-lab-lkp/linux/commits/Stefan-Hajnoczi/virtiofs-forbid-newlines-in-tags/20240213-081536 > base: https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git for-next > patch link: https://lore.kernel.org/r/20240213001149.904176-3-stefanha%40redhat.com > patch subject: [PATCH v4 2/3] virtiofs: export filesystem tags through sysfs > config: sh-randconfig-r131-20240223 (https://download.01.org/0day-ci/archive/20240224/202402240215.AhxvUkqt-lkp@intel.com/config) > compiler: sh4-linux-gcc (GCC) 13.2.0 > reproduce: (https://download.01.org/0day-ci/archive/20240224/202402240215.AhxvUkqt-lkp@intel.com/reproduce) > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > the same patch/commit), kindly add following tags > | Reported-by: kernel test robot <lkp@intel.com> > | Closes: https://lore.kernel.org/oe-kbuild-all/202402240215.AhxvUkqt-lkp@intel.com/ > > All warnings (new ones prefixed by >>, old ones prefixed by <<): > > WARNING: modpost: missing MODULE_DESCRIPTION() in vmlinux.o > >> WARNING: modpost: vmlinux: section mismatch in reference: virtio_fs_init+0x78 (section: .init.text) -> ikconfig_cleanup (section: .exit.text) False positive? virtio_fs_init() does not call ikconfig_cleanup(). > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp437.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp737.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp869.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp949.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp1250.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp1251.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_ascii.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-2.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-9.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-14.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_koi8-r.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_utf8.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-cyrillic.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-inuit.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_ucs2_utils.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/binfmt_script.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/fat/fat.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/btrfs/btrfs.o > WARNING: modpost: missing MODULE_DESCRIPTION() in security/keys/trusted-keys/trusted.o > WARNING: modpost: missing MODULE_DESCRIPTION() in crypto/xor.o > WARNING: modpost: missing MODULE_DESCRIPTION() in block/t10-pi.o > WARNING: modpost: missing MODULE_DESCRIPTION() in lib/asn1_decoder.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/soc/ixp4xx/ixp4xx-qmgr.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/soc/ixp4xx/ixp4xx-npe.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/soc/qcom/spm.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/regulator/max20411-regulator.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/reset/hisilicon/hi6220_reset.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/tty/serial/8250/8250_pxa.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/tty/ttynull.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/char/hw_random/omap3-rom-rng.o > WARNING: modpost: drivers/char/hw_random/mxc-rnga: section mismatch in reference: mxc_rnga_driver+0x4 (section: .data) -> mxc_rnga_remove (section: .exit.text) > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/base/regmap/regmap-w1.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mfd/pcf50633-gpio.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/nvme/common/nvme-auth.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/nvme/host/nvme-core.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/nvme/host/nvme-fabrics.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/nvme/target/nvmet.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/nvme/target/nvme-loop.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mtd/parsers/brcm_u-boot.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mtd/chips/cfi_util.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mtd/chips/cfi_cmdset_0020.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/input/touchscreen/cyttsp_i2c_common.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/input/matrix-keymap.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/i2c/busses/i2c-pxa.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/media/rc/rc-core.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/media/dvb-frontends/mb86a16.o > WARNING: modpost: drivers/mmc/host/davinci_mmc: section mismatch in reference: davinci_mmcsd_driver+0x8 (section: .data) -> davinci_mmcsd_remove (section: .exit.text) > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mmc/core/mmc_core.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mmc/core/sdio_uart.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/devfreq/governor_simpleondemand.o > WARNING: modpost: drivers/memory/emif: section mismatch in reference: emif_driver+0x4 (section: .data) -> emif_remove (section: .exit.text) > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/perf/arm_cspmu/ampere_cspmu.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/perf/arm-ccn.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/perf/fsl_imx8_ddr_perf.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/hte/hte-tegra194-test.o > WARNING: modpost: missing MODULE_DESCRIPTION() in sound/drivers/snd-pcmtest.o > > -- > 0-DAY CI Kernel Test Service > https://github.com/intel/lkp-tests/wiki > [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 2/3] virtiofs: export filesystem tags through sysfs 2024-02-13 0:11 ` [PATCH v4 2/3] virtiofs: export filesystem tags through sysfs Stefan Hajnoczi 2024-02-23 18:55 ` kernel test robot @ 2024-02-26 23:09 ` kernel test robot 2024-02-27 15:49 ` Stefan Hajnoczi 1 sibling, 1 reply; 9+ messages in thread From: kernel test robot @ 2024-02-26 23:09 UTC (permalink / raw) To: Stefan Hajnoczi; +Cc: oe-kbuild-all Hi Stefan, kernel test robot noticed the following build warnings: [auto build test WARNING on mszeredi-fuse/for-next] [also build test WARNING on linus/master v6.8-rc6] [cannot apply to next-20240226] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Stefan-Hajnoczi/virtiofs-forbid-newlines-in-tags/20240213-081536 base: https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git for-next patch link: https://lore.kernel.org/r/20240213001149.904176-3-stefanha%40redhat.com patch subject: [PATCH v4 2/3] virtiofs: export filesystem tags through sysfs config: um-randconfig-r081-20240226 (https://download.01.org/0day-ci/archive/20240227/202402270649.GYjNX0yw-lkp@intel.com/config) compiler: gcc-11 (Debian 11.3.0-12) 11.3.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240227/202402270649.GYjNX0yw-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202402270649.GYjNX0yw-lkp@intel.com/ All warnings (new ones prefixed by >>, old ones prefixed by <<): WARNING: modpost: missing MODULE_DESCRIPTION() in vmlinux.o WARNING: modpost: missing MODULE_DESCRIPTION() in kernel/rcu/rcuscale.o WARNING: modpost: missing MODULE_DESCRIPTION() in kernel/backtracetest.o >> WARNING: modpost: fs/fuse/virtiofs: section mismatch in reference: virtio_fs_init+0x144 (section: .init.text) -> virtio_fs_sysfs_exit (section: .exit.text) WARNING: modpost: missing MODULE_DESCRIPTION() in fs/binfmt_script.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_base.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp437.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp775.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp850.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp857.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp861.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp862.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp863.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp864.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp865.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp866.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp932.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_euc-jp.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp950.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp1250.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_ascii.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-1.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-2.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-3.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-4.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-5.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-6.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-7.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp1255.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-9.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-14.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-15.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_koi8-r.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_koi8-u.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_koi8-ru.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_utf8.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-celtic.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-cyrillic.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-gaelic.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-greek.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-inuit.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-romanian.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-roman.o WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-turkish.o WARNING: modpost: missing MODULE_DESCRIPTION() in security/keys/encrypted-keys/encrypted-keys.o WARNING: modpost: missing MODULE_DESCRIPTION() in crypto/cast_common.o WARNING: modpost: missing MODULE_DESCRIPTION() in crypto/ecc.o WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_hexdump.o WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_ubsan.o WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_module.o WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_rhashtable.o WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_user_copy.o WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_static_keys.o WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_static_key_base.o WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_scanf.o WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_bitmap.o WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_uuid.o WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_maple_tree.o WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_meminit.o WARNING: modpost: missing MODULE_DESCRIPTION() in lib/zlib_deflate/zlib_deflate.o WARNING: modpost: missing MODULE_DESCRIPTION() in lib/atomic64_test.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpio/gpio-pcf857x.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/virtio/virtio.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/virtio/virtio_ring.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/char/ttyprintk.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/dax/dax.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/input/vivaldi-fmap.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mtd/chips/cfi_util.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mtd/chips/cfi_cmdset_0020.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/uio/uio.o WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/iio/buffer/kfifo_buf.o WARNING: modpost: EXPORT symbol "csum_partial" [vmlinux] version generation failed, symbol will not be versioned. Is "csum_partial" prototyped in <asm/asm-prototypes.h>? WARNING: modpost: EXPORT symbol "csum_partial_copy_generic" [vmlinux] version generation failed, symbol will not be versioned. Is "csum_partial_copy_generic" prototyped in <asm/asm-prototypes.h>? -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v4 2/3] virtiofs: export filesystem tags through sysfs 2024-02-26 23:09 ` kernel test robot @ 2024-02-27 15:49 ` Stefan Hajnoczi 0 siblings, 0 replies; 9+ messages in thread From: Stefan Hajnoczi @ 2024-02-27 15:49 UTC (permalink / raw) To: kernel test robot; +Cc: oe-kbuild-all [-- Attachment #1: Type: text/plain, Size: 7458 bytes --] On Tue, Feb 27, 2024 at 07:09:27AM +0800, kernel test robot wrote: > Hi Stefan, > > kernel test robot noticed the following build warnings: > > [auto build test WARNING on mszeredi-fuse/for-next] > [also build test WARNING on linus/master v6.8-rc6] > [cannot apply to next-20240226] > [If your patch is applied to the wrong git tree, kindly drop us a note. > And when submitting patch, we suggest to use '--base' as documented in > https://git-scm.com/docs/git-format-patch#_base_tree_information] > > url: https://github.com/intel-lab-lkp/linux/commits/Stefan-Hajnoczi/virtiofs-forbid-newlines-in-tags/20240213-081536 > base: https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git for-next > patch link: https://lore.kernel.org/r/20240213001149.904176-3-stefanha%40redhat.com > patch subject: [PATCH v4 2/3] virtiofs: export filesystem tags through sysfs > config: um-randconfig-r081-20240226 (https://download.01.org/0day-ci/archive/20240227/202402270649.GYjNX0yw-lkp@intel.com/config) > compiler: gcc-11 (Debian 11.3.0-12) 11.3.0 > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240227/202402270649.GYjNX0yw-lkp@intel.com/reproduce) > > If you fix the issue in a separate patch/commit (i.e. not just a new version of > the same patch/commit), kindly add following tags > | Reported-by: kernel test robot <lkp@intel.com> > | Closes: https://lore.kernel.org/oe-kbuild-all/202402270649.GYjNX0yw-lkp@intel.com/ > > All warnings (new ones prefixed by >>, old ones prefixed by <<): > > WARNING: modpost: missing MODULE_DESCRIPTION() in vmlinux.o > WARNING: modpost: missing MODULE_DESCRIPTION() in kernel/rcu/rcuscale.o > WARNING: modpost: missing MODULE_DESCRIPTION() in kernel/backtracetest.o > >> WARNING: modpost: fs/fuse/virtiofs: section mismatch in reference: virtio_fs_init+0x144 (section: .init.text) -> virtio_fs_sysfs_exit (section: .exit.text) I'll send a patch to fix this. Stefan > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/binfmt_script.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_base.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp437.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp775.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp850.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp857.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp861.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp862.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp863.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp864.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp865.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp866.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp932.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_euc-jp.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp950.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp1250.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_ascii.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-1.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-2.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-3.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-4.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-5.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-6.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-7.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_cp1255.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-9.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-14.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_iso8859-15.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_koi8-r.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_koi8-u.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_koi8-ru.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/nls_utf8.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-celtic.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-cyrillic.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-gaelic.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-greek.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-inuit.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-romanian.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-roman.o > WARNING: modpost: missing MODULE_DESCRIPTION() in fs/nls/mac-turkish.o > WARNING: modpost: missing MODULE_DESCRIPTION() in security/keys/encrypted-keys/encrypted-keys.o > WARNING: modpost: missing MODULE_DESCRIPTION() in crypto/cast_common.o > WARNING: modpost: missing MODULE_DESCRIPTION() in crypto/ecc.o > WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_hexdump.o > WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_ubsan.o > WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_module.o > WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_rhashtable.o > WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_user_copy.o > WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_static_keys.o > WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_static_key_base.o > WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_scanf.o > WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_bitmap.o > WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_uuid.o > WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_maple_tree.o > WARNING: modpost: missing MODULE_DESCRIPTION() in lib/test_meminit.o > WARNING: modpost: missing MODULE_DESCRIPTION() in lib/zlib_deflate/zlib_deflate.o > WARNING: modpost: missing MODULE_DESCRIPTION() in lib/atomic64_test.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/gpio/gpio-pcf857x.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/virtio/virtio.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/virtio/virtio_ring.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/char/ttyprintk.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/dax/dax.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/input/vivaldi-fmap.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mtd/chips/cfi_util.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/mtd/chips/cfi_cmdset_0020.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/uio/uio.o > WARNING: modpost: missing MODULE_DESCRIPTION() in drivers/iio/buffer/kfifo_buf.o > WARNING: modpost: EXPORT symbol "csum_partial" [vmlinux] version generation failed, symbol will not be versioned. > Is "csum_partial" prototyped in <asm/asm-prototypes.h>? > WARNING: modpost: EXPORT symbol "csum_partial_copy_generic" [vmlinux] version generation failed, symbol will not be versioned. > Is "csum_partial_copy_generic" prototyped in <asm/asm-prototypes.h>? > > -- > 0-DAY CI Kernel Test Service > https://github.com/intel/lkp-tests/wiki > [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v4 3/3] virtiofs: emit uevents on filesystem events 2024-02-13 0:11 [PATCH v4 0/3] virtiofs: export filesystem tags through sysfs Stefan Hajnoczi 2024-02-13 0:11 ` [PATCH v4 1/3] virtiofs: forbid newlines in tags Stefan Hajnoczi 2024-02-13 0:11 ` [PATCH v4 2/3] virtiofs: export filesystem tags through sysfs Stefan Hajnoczi @ 2024-02-13 0:11 ` Stefan Hajnoczi 2024-02-13 21:32 ` [PATCH v4 0/3] virtiofs: export filesystem tags through sysfs Vivek Goyal 3 siblings, 0 replies; 9+ messages in thread From: Stefan Hajnoczi @ 2024-02-13 0:11 UTC (permalink / raw) To: linux-fsdevel Cc: miklos, Greg KH, Alyssa Ross, mzxreary, gmaglione, vgoyal, virtio-fs, Stefan Hajnoczi Alyssa Ross <hi@alyssa.is> requested that virtiofs notifies userspace when filesytems become available. This can be used to detect when a filesystem with a given tag is hotplugged, for example. uevents allow userspace to detect changes without resorting to polling. The tag is included as a uevent property so it's easy for userspace to identify the filesystem in question even when the sysfs directory goes away during removal. Here are example uevents: # udevadm monitor -k -p KERNEL[111.113221] add /fs/virtiofs/2 (virtiofs) ACTION=add DEVPATH=/fs/virtiofs/2 SUBSYSTEM=virtiofs TAG=test KERNEL[165.527167] remove /fs/virtiofs/2 (virtiofs) ACTION=remove DEVPATH=/fs/virtiofs/2 SUBSYSTEM=virtiofs TAG=test Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- fs/fuse/virtio_fs.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/fs/fuse/virtio_fs.c b/fs/fuse/virtio_fs.c index 99b6113bbd13..62a44603740c 100644 --- a/fs/fuse/virtio_fs.c +++ b/fs/fuse/virtio_fs.c @@ -306,6 +306,8 @@ static int virtio_fs_add_instance(struct virtio_device *vdev, mutex_unlock(&virtio_fs_mutex); + kobject_uevent(&fs->kobj, KOBJ_ADD); + return 0; } @@ -1565,9 +1567,22 @@ static struct file_system_type virtio_fs_type = { .kill_sb = virtio_kill_sb, }; +static int virtio_fs_uevent(const struct kobject *kobj, struct kobj_uevent_env *env) +{ + const struct virtio_fs *fs = container_of(kobj, struct virtio_fs, kobj); + + add_uevent_var(env, "TAG=%s", fs->tag); + return 0; +} + +static const struct kset_uevent_ops virtio_fs_uevent_ops = { + .uevent = virtio_fs_uevent, +}; + static int __init virtio_fs_sysfs_init(void) { - virtio_fs_kset = kset_create_and_add("virtiofs", NULL, fs_kobj); + virtio_fs_kset = kset_create_and_add("virtiofs", &virtio_fs_uevent_ops, + fs_kobj); if (!virtio_fs_kset) return -ENOMEM; return 0; -- 2.43.0 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v4 0/3] virtiofs: export filesystem tags through sysfs 2024-02-13 0:11 [PATCH v4 0/3] virtiofs: export filesystem tags through sysfs Stefan Hajnoczi ` (2 preceding siblings ...) 2024-02-13 0:11 ` [PATCH v4 3/3] virtiofs: emit uevents on filesystem events Stefan Hajnoczi @ 2024-02-13 21:32 ` Vivek Goyal 3 siblings, 0 replies; 9+ messages in thread From: Vivek Goyal @ 2024-02-13 21:32 UTC (permalink / raw) To: Stefan Hajnoczi Cc: linux-fsdevel, miklos, Greg KH, Alyssa Ross, mzxreary, gmaglione, virtio-fs On Mon, Feb 12, 2024 at 07:11:46PM -0500, Stefan Hajnoczi wrote: > v4: > - Create kset before registering virtio driver because the kset needed in > virtio_fs_probe(). Solves the empty /sys/fs/virtiofs bug. [Vivek] > v3: > - Use dev_dbg() to avoid spamming logs [Greg] > - Fix 644 mode on "tag" attr and use __ATTR_RO() [Greg] > - Use kset_uevent_ops and eliminate explicit KOBJ_REMOVE [Greg] > v2: > - Vivek mentioned that he didn't have time to work on this patch series > recently so I gave it a shot. > - Information is now exposed in /sys/fs/virtiofs/ whereas before it was part of > the generic virtio device kobject, which didn't really fit. > > Userspace needs a way to enumerate available virtiofs filesystems and detect > when they are hotplugged or unplugged. This would allow systemd to wait for a > virtiofs filesystem during boot, for example. > > This patch series adds the following in sysfs: > > /sys/fs/virtiofs/<n>/tag - unique identifier for mount(8) > /sys/fs/virtiofs/<n>/device - symlink to virtio device > > A uevent is emitted when virtiofs devices are hotplugged or unplugged: > > KERNEL[111.113221] add /fs/virtiofs/2 (virtiofs) > ACTION=add > DEVPATH=/fs/virtiofs/2 > SUBSYSTEM=virtiofs > TAG=test > > KERNEL[165.527167] remove /fs/virtiofs/2 (virtiofs) > ACTION=remove > DEVPATH=/fs/virtiofs/2 > SUBSYSTEM=virtiofs > TAG=test > > Stefan Hajnoczi (3): > virtiofs: forbid newlines in tags > virtiofs: export filesystem tags through sysfs > virtiofs: emit uevents on filesystem events Hi Stefan, Thanks a lot for this patch series. It looks good to me. I also tested and now I can see entries in /sys/fs/virtiofs/. I also wrote a udev rule and a mount unit file to automatically mount virtiofs instance and unmount when device is unplugged. Everything seems to work. Hence.. Reviewed-by: Vivek Goyal <vgoyal@redhat.com> Thanks Vivek > > fs/fuse/virtio_fs.c | 137 ++++++++++++++++---- > Documentation/ABI/testing/sysfs-fs-virtiofs | 11 ++ > 2 files changed, 126 insertions(+), 22 deletions(-) > create mode 100644 Documentation/ABI/testing/sysfs-fs-virtiofs > > -- > 2.43.0 > ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-02-27 15:49 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-02-13 0:11 [PATCH v4 0/3] virtiofs: export filesystem tags through sysfs Stefan Hajnoczi 2024-02-13 0:11 ` [PATCH v4 1/3] virtiofs: forbid newlines in tags Stefan Hajnoczi 2024-02-13 0:11 ` [PATCH v4 2/3] virtiofs: export filesystem tags through sysfs Stefan Hajnoczi 2024-02-23 18:55 ` kernel test robot 2024-02-27 15:40 ` Stefan Hajnoczi 2024-02-26 23:09 ` kernel test robot 2024-02-27 15:49 ` Stefan Hajnoczi 2024-02-13 0:11 ` [PATCH v4 3/3] virtiofs: emit uevents on filesystem events Stefan Hajnoczi 2024-02-13 21:32 ` [PATCH v4 0/3] virtiofs: export filesystem tags through sysfs Vivek Goyal
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.