OpenCloudOS-Kernel/fs/overlayfs
Amir Goldstein 1b81dddd35 ovl: fix corner case of conflicting lower layer uuid
This fixes ovl_lower_uuid_ok() to correctly detect the corner case:
 - two filesystems, A and B, both have null uuid
 - upper layer is on A
 - lower layer 1 is also on A
 - lower layer 2 is on B

In this case, bad_uuid would not have been set for B, because the check
only involved the list of lower fs.  Hence we'll try to decode a layer 2
origin on layer 1 and fail.

We check for conflicting (and null) uuid among all lower layers, including
those layers that are on the same fs as the upper layer.

Reported-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2020-01-24 09:46:45 +01:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
copy_up.c ovl: improving copy-up efficiency for big sparse file 2020-01-22 20:11:41 +01:00
dir.c ovl: use pr_fmt auto generate prefix 2020-01-22 20:11:41 +01:00
export.c ovl: generalize the lower_layers[] array 2020-01-22 20:11:41 +01:00
file.c ovl: use ovl_inode_lock in ovl_llseek() 2020-01-22 20:11:41 +01:00
inode.c ovl: generalize the lower_fs[] array 2020-01-24 09:46:45 +01:00
namei.c ovl: generalize the lower_layers[] array 2020-01-22 20:11:41 +01:00
overlayfs.h ovl: simplify ovl_same_sb() helper 2020-01-24 09:46:45 +01:00
ovl_entry.h ovl: fix corner case of conflicting lower layer uuid 2020-01-24 09:46:45 +01:00
readdir.c ovl: simplify ovl_same_sb() helper 2020-01-24 09:46:45 +01:00
super.c ovl: fix corner case of conflicting lower layer uuid 2020-01-24 09:46:45 +01:00
util.c ovl: simplify ovl_same_sb() helper 2020-01-24 09:46:45 +01:00