Re: Question about XFS_MAXINUMBER

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Mar 17, 2018 at 7:40 AM, Miklos Szeredi <miklos@xxxxxxxxxx> wrote:
> On Fri, Mar 16, 2018 at 11:24 PM, Dave Chinner <david@xxxxxxxxxxxxx> wrote:
>> On Fri, Mar 16, 2018 at 04:05:22PM +0200, Amir Goldstein wrote:
>>> Hi guys,
>>>
>>> I am trying to get a lower bound for unused inode number MSB on
>>> a mounted xfs super block, so I can publish it on struct super_block.
>>
>> Sorry, what?
>>
>> The inode number is owned by the filesystem - nobody should be
>> touching it or making assumptions they can screw with it in any way.
>>

Let me clarify with the simplest example:

With overlay of 2 layers, lower and upper on 2 different xfs fs
assuming that stat(2) from xfs will not be using the 63 MSB:

On stat(2) of an overlay upper inode we want to return:
  st_dev = <overlay anon bdev>
  st_ino = <real upper st_ino>

On stat(2) of an overlay lower inode we want to return:
  st_dev = <overlay anon bdev>
  st_ino = <real lower st_ino> | 1 << 63

Now for ext4 this is always safe to do and we find that automatically
due to the fact that ext4 uses the default encode_fh generic 32bit
inode encoding.

For xfs this should also be safe, but we don't want to whitelist xfs
by name/magic, so we want xfs to publish the max amount of bits
exposed to user with stat(2)/getdents(3).

Recently, I became aware of an nfsd use case that also looks
at inode->i_ino, so we may want to also be able to assume
max_ino_bits also applies to inode->i_ino, but if you tell us to
stay clear of inode->i_ino, then we can always use stat.st_ino.

Thanks,
Amir.
--
To unsubscribe from this list: send the line "unsubscribe linux-unionfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystems Devel]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux