[PATCH] UBIFS: Add /dev/ubiX_Y naming scheme in open_ubi

Corentin Chary corentin.chary at gmail.com
Fri Sep 25 08:27:37 EDT 2009


On Fri, Sep 25, 2009 at 1:37 PM, Adrian Hunter <adrian.hunter at nokia.com> wrote:
> Corentin Chary wrote:
>>
>> This is needed to use $ mount /dev/ubi0_0 /mnt/nand
>> You'll also need a recent libblkid with UBI and UBIFS
>> support.
>>
>> Signed-off-by: Corentin Chary <corentincj at iksaif.net>
>> ---
>>  fs/ubifs/super.c |   12 ++++++++----
>>  1 files changed, 8 insertions(+), 4 deletions(-)
>>
>> diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
>> index 7e2b3d4..38320ad 100644
>> --- a/fs/ubifs/super.c
>> +++ b/fs/ubifs/super.c
>> @@ -1843,10 +1843,11 @@ const struct super_operations
>> ubifs_super_operations = {
>>  * @mode: UBI volume open mode
>>  *
>>  * There are several ways to specify UBI volumes when mounting UBIFS:
>> - * o ubiX_Y    - UBI device number X, volume Y;
>> - * o ubiY      - UBI device number 0, volume Y;
>> - * o ubiX:NAME - mount UBI device X, volume with name NAME;
>> - * o ubi:NAME  - mount UBI device 0, volume with name NAME.
>> + * o /dev/ubiX_Y - UBI device number X, volume Y;
>> + * o ubiX_Y      - UBI device number X, volume Y;
>> + * o ubiY        - UBI device number 0, volume Y;
>> + * o ubiX:NAME   - mount UBI device X, volume with name NAME;
>> + * o ubi:NAME    - mount UBI device 0, volume with name NAME.
>>  *
>>  * Alternative '!' separator may be used instead of ':' (because some
>> shells
>>  * like busybox may interpret ':' as an NFS host name separator). This
>> function
>> @@ -1858,6 +1859,9 @@ static struct ubi_volume_desc *open_ubi(const char
>> *name, int mode)
>>        int dev, vol;
>>        char *endptr;
>>  +       if (!strncmp("/dev/", name, 5))
>> +               name = name + 5;
>> +
>>        if (name[0] != 'u' || name[1] != 'b' || name[2] != 'i')
>>                return ERR_PTR(-EINVAL);
>
> Is this for the kernel?
Yes

> I do not think UBIFS should interpret the file name.  It should
> work off the major and minor numbers from the device node
> irrespective of what its path name or file name is.

UBIFS is currently a "nodev" filesystem, it's why I did it that way.

Using name and kern_path we can find the corresponding inode (and
major/minor informations).
But I don't see a way to open the corresponding UBI volume with only
major/minor.
ubi_open_volume use ubi_num and vol_id.
vol_id is minor()-1, but major is not related to ubi_num.

UBI have a "ubi_major2num" internally, is it ok to export this symbol ?

Thanks

-- 
Corentin Chary
http://xf.iksaif.net



More information about the linux-mtd mailing list