linux/fs/overlayfs
Amir Goldstein fa0096e3ba ovl: do not cleanup unsupported index entries
With index=on, ovl_indexdir_cleanup() tries to cleanup invalid index
entries (e.g. bad index name). This behavior could result in cleaning of
entries created by newer kernels and is therefore undesirable.
Instead, abort mount if such entries are encountered. We still cleanup
'stale' entries and 'orphan' entries, both those cases can be a result
of offline changes to lower and upper dirs.

When encoutering an index entry of type directory or whiteout, kernel
was supposed to fallback to read-only mount, but the fill_super()
operation returns EROFS in this case instead of returning success with
read-only mount flag, so mount fails when encoutering directory or
whiteout index entries. Bless this behavior by returning -EINVAL on
directory and whiteout index entries as we do for all unsupported index
entries.

Fixes: 61b674710c ("ovl: do not cleanup directory and whiteout index..")
Cc: <stable@vger.kernel.org> # v4.13
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
2017-10-24 16:06:17 +02:00
..
copy_up.c ovl: fix missing unlock_rename() in ovl_do_copy_up() 2017-10-05 15:53:18 +02:00
dir.c ovl: fix missing unlock_rename() in ovl_do_copy_up() 2017-10-05 15:53:18 +02:00
inode.c ovl: fix EIO from lookup of non-indexed upper 2017-10-24 16:06:16 +02:00
Kconfig ovl: introduce the inodes index dir feature 2017-07-04 22:03:17 +02:00
Makefile ovl: split super.c 2016-12-16 11:02:56 +01:00
namei.c ovl: do not cleanup unsupported index entries 2017-10-24 16:06:17 +02:00
overlayfs.h ovl: fix EIO from lookup of non-indexed upper 2017-10-24 16:06:16 +02:00
ovl_entry.h ovl: fix regression caused by exclusive upper/work dir protection 2017-10-05 15:53:18 +02:00
readdir.c ovl: do not cleanup unsupported index entries 2017-10-24 16:06:17 +02:00
super.c ovl: add NULL check in ovl_alloc_inode 2017-10-19 16:19:51 +02:00
util.c ovl: fix missing unlock_rename() in ovl_do_copy_up() 2017-10-05 15:53:18 +02:00