linux_dsm_epyc7002/fs/overlayfs
Amir Goldstein e487d889b7 ovl: constant st_ino for non-samefs with xino
On 64bit systems, when overlay layers are not all on the same fs, but
all inode numbers of underlying fs are not using the high bits, use the
high bits to partition the overlay st_ino address space.  The high bits
hold the fsid (upper fsid is 0).  This way overlay inode numbers are unique
and all inodes use overlay st_dev.  Inode numbers are also persistent
for a given layer configuration.

Currently, our only indication for available high ino bits is from a
filesystem that supports file handles and uses the default encode_fh()
operation, which encodes a 32bit inode number.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2018-04-12 12:04:50 +02:00
..
copy_up.c ovl: disambiguate ovl_encode_fh() 2018-04-12 12:04:49 +02:00
dir.c ovl: whiteout index when union nlink drops to zero 2018-01-24 11:25:56 +01:00
export.c ovl: cleanup setting OVL_INDEX 2018-04-12 12:04:49 +02:00
inode.c ovl: constant st_ino for non-samefs with xino 2018-04-12 12:04:50 +02:00
Kconfig ovl: update Kconfig texts 2018-03-07 11:47:15 +01:00
Makefile ovl: encode pure upper file handles 2018-01-24 11:25:59 +01:00
namei.c ovl: add WARN_ON() for non-dir redirect cases 2018-04-12 12:04:49 +02:00
overlayfs.h ovl: constant st_ino for non-samefs with xino 2018-04-12 12:04:50 +02:00
ovl_entry.h ovl: constant st_ino for non-samefs with xino 2018-04-12 12:04:50 +02:00
readdir.c ovl: whiteout orphan index entries on mount 2018-01-24 11:25:56 +01:00
super.c ovl: constant st_ino for non-samefs with xino 2018-04-12 12:04:50 +02:00
util.c ovl: constant st_ino for non-samefs with xino 2018-04-12 12:04:50 +02:00