linux-next/fs/overlayfs
Amir Goldstein a888db3101 ovl: fix regression with re-formatted lower squashfs
Commit 9df085f3c9 ("ovl: relax requirement for non null uuid of lower
fs") relaxed the requirement for non null uuid with single lower layer to
allow enabling index and nfs_export features with single lower squashfs.

Fabian reported a regression in a setup when overlay re-uses an existing
upper layer and re-formats the lower squashfs image.  Because squashfs
has no uuid, the origin xattr in upper layer are decoded from the new
lower layer where they may resolve to a wrong origin file and user may
get an ESTALE or EIO error on lookup.

To avoid the reported regression while still allowing the new features
with single lower squashfs, do not allow decoding origin with lower null
uuid unless user opted-in to one of the new features that require
following the lower inode of non-dir upper (index, xino, metacopy).

Reported-by: Fabian <godi.beat@gmx.net>
Link: https://lore.kernel.org/linux-unionfs/32532923.JtPX5UtSzP@fgdesktop/
Fixes: 9df085f3c9 ("ovl: relax requirement for non null uuid of lower fs")
Cc: stable@vger.kernel.org # v4.20+
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2020-07-16 00:10:31 +02:00
..
copy_up.c ovl: change ovl_copy_up_flags static 2020-07-16 00:06:16 +02:00
dir.c ovl: initialize OVL_UPPERDATA in ovl_lookup() 2020-06-02 22:20:25 +02:00
export.c ovl: relax WARN_ON() when decoding lower directory file handle 2020-07-16 00:09:17 +02:00
file.c ovl: only pass ->ki_flags to ovl_iocb_to_rwf() 2020-06-04 10:48:19 +02:00
inode.c overlayfs update for 5.8 2020-06-09 15:40:50 -07:00
Kconfig docs: fix broken references to text files 2020-04-20 15:35:59 -06:00
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
namei.c ovl: remove not used argument in ovl_check_origin 2020-07-16 00:06:16 +02:00
overlayfs.h ovl: change ovl_copy_up_flags static 2020-07-16 00:06:16 +02:00
ovl_entry.h ovl: get rid of redundant members in struct ovl_fs 2020-06-04 10:48:19 +02:00
readdir.c ovl: add accessor for ofs->upper_mnt 2020-06-04 10:48:19 +02:00
super.c ovl: fix regression with re-formatted lower squashfs 2020-07-16 00:10:31 +02:00
util.c ovl: add accessor for ofs->upper_mnt 2020-06-04 10:48:19 +02:00