Re: [RFC PATCH] vfs: Use 12:20 bit major:minor in stat everywhere

From: Gwendal Grignou
Date: Wed Mar 04 2015 - 02:26:49 EST


On Tue, Mar 3, 2015 at 5:47 PM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
> On Tue, Mar 03, 2015 at 05:37:31PM -0800, Gwendal Grignou wrote:
>> At least, to base the device format on whether we are running on a 32
>> bit or 64 bit architecture does not make sense.
>
> Yes, it does. Note that on 32bit ones stat64(2) *will* return an arbitrary
> value. On 64bit ones stat(2) will.
I see, we - just - have to replace stat() calls with stat64(). It will
work because on 64bit architecture, both stat and stat64 map to
sys_newstat and on 32 bits, stat64 maps to sys_stat64 which does the
right thing.
It is a little like we are now using BLKGETSIZE64 instead of
BLKGETSIZE because disks can be larger than 2TB.
>
>> If a tool calling stat(2) can not handle 12 bit major/20 bits minor,
>> it would already break or about to break when running on a 64 bit
>> machine.
>>
>> Regarding SCSI, the 17th disk will use SCSI_DISK1_MAJOR (65). Only the
>> 257th disk will use the first scsi major (8) again and need a minor
>> greater than 256. (see sd_major() in drivers/scsi/sd.c for details).
>
> *nod*
>
> It's been years since I last looked at sd.c, TBH...
>
> Said that, with NFS it's definitely a minor per superblock, and it's not the
> only set_anon_super() user. Having a bunch of filesystems mounted over NFS
> will suffice...
or a bunch of ISCSI targets.
Thanks for your insight,

Gwendal.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/