linux-stable/fs/overlayfs
Amir Goldstein 926e94d79b ovl: enable xino automatically in more cases
So far, with xino=auto, we only enable xino if we know that all
underlying filesystem use 32bit inode numbers.

When users configure overlay with xino=auto, they already declare that
they are ready to handle 64bit inode number from overlay.

It is a very common case, that underlying filesystem uses 64bit ino,
but rarely or never uses the high inode number bits (e.g. tmpfs, xfs).
Leaving it for the users to declare high ino bits are unused with
xino=on is not a recipe for many users to enjoy the benefits of xino.

There appears to be very little reason not to enable xino when users
declare xino=auto even if we do not know how many bits underlying
filesystem uses for inode numbers.

In the worst case of xino bits overflow by real inode number, we
already fall back to the non-xino behavior - real inode number with
unique pseudo dev or to non persistent inode number and overlay st_dev
(for directories).

The only annoyance from auto enabling xino is that xino bits overflow
emits a warning to kmsg. Suppress those warnings unless users explicitly
asked for xino=on, suggesting that they expected high ino bits to be
unused by underlying filesystem.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2020-03-27 16:51:02 +01:00
..
Kconfig ovl: fix some xino configurations 2020-03-13 15:53:06 +01:00
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
copy_up.c ovl: ignore failure to copy up unknown xattrs 2020-03-17 15:04:22 +01:00
dir.c ovl: fix WARN_ON nlink drop to zero 2020-03-27 16:51:02 +01:00
export.c ovl: ovl_obtain_alias(): don't call d_instantiate_anon() for old 2020-03-17 15:04:23 +01:00
file.c ovl: fix lockdep warning for async write 2020-03-13 15:53:06 +01:00
inode.c ovl: enable xino automatically in more cases 2020-03-27 16:51:02 +01:00
namei.c ovl: allow remote upper 2020-03-17 15:04:22 +01:00
overlayfs.h ovl: enable xino automatically in more cases 2020-03-27 16:51:02 +01:00
ovl_entry.h ovl: use a private non-persistent ino pool 2020-03-27 16:51:02 +01:00
readdir.c ovl: enable xino automatically in more cases 2020-03-27 16:51:02 +01:00
super.c ovl: enable xino automatically in more cases 2020-03-27 16:51:02 +01:00
util.c ovl: allow remote upper 2020-03-17 15:04:22 +01:00