• Stefan Hajnoczi's avatar
    virtiofs: export filesystem tags through sysfs · a8f62f50
    Stefan Hajnoczi authored
    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: default avatarVivek Goyal <vgoyal@redhat.com>
    Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    Reviewed-by: default avatarVivek Goyal <vgoyal@redhat.com>
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
    a8f62f50
sysfs-fs-virtiofs 323 Bytes