Setting ->s_dev to a char device (Was: Re: [PATCH v2] ubifs: allow userspace to map mounts to volumes)
Al Viro
viro at ZenIV.linux.org.uk
Mon May 29 05:08:25 PDT 2017
On Mon, May 29, 2017 at 01:50:30PM +0200, Richard Weinberger wrote:
> CC'ing VFS folks
>
> Am 29.05.2017 um 09:22 schrieb Rabin Vincent:
> > From: Rabin Vincent <rabinv at axis.com>
> >
> > There currently appears to be no way for userspace to find out the
> > underlying volume number for a mounted ubifs file system, since ubifs
> > uses anonymous block devices. The volume name is present in
> > /proc/mounts but UBI volumes can be renamed after the volume has been
> > mounted.
> >
> > To remedy this, provide a directory in /sys/fs/ubifs named after the
> > underlying anonymous block device's number (obtainable by userspace via
> > stat(2)) and provide a link named "ubi" to the underlying UBI volume.
>
> I wonder whether it would make more sense to just assign the character device
> number of the UBI volume to ->s_dev.
> Then userspace can query the underlying device without additional sysfs
> magic.
>
> Sure if userspace expects a block number from UBIFS it will get confused.
>
> Comments?
Userspace sure as hell does. st_dev in stat(2) is a block device number;
moreover, there might _be_ a block device with the same number at the same
time - even mounted. Why not make ->show_options() print the currently
valid volume name, anyway? That would seem to be the obvious approach...
More information about the linux-mtd
mailing list