android_kernel_xiaomi_sm8450/fs/overlayfs
Amir Goldstein ad1d615cec ovl: use directory index entries for consistency verification
A directory index is a directory type entry in index dir with a
"trusted.overlay.upper" xattr containing an encoded ovl_fh of the merge
directory upper dir inode.

On lookup of non-dir files, lower file is followed by origin file handle.
On lookup of dir entries, lower dir is found by name and then compared
to origin file handle. We only trust dir index if we verified that lower
dir matches origin file handle, otherwise index may be inconsistent and
we ignore it.

If we find an indexed non-upper dir or an indexed merged dir, whose
index 'upper' xattr points to a different upper dir, that means that the
lower directory may be also referenced by another upper dir via redirect,
so we fail the lookup on inconsistency error.

To be consistent with directory index entries format, the association of
index dir to upper root dir, that was stored by older kernels in
"trusted.overlay.origin" xattr is now stored in "trusted.overlay.upper"
xattr. This also serves as an indication that overlay was mounted with a
kernel that support index directory entries. For backward compatibility,
if an 'origin' xattr exists on the index dir we also verify it on mount.

Directory index entries are going to be used for NFS export.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2018-01-24 11:25:52 +01:00
..
copy_up.c ovl: generalize ovl_verify_origin() and helpers 2018-01-24 10:19:54 +01:00
dir.c ovl: take lower dir inode mutex outside upper sb_writers lock 2018-01-19 17:43:23 +01:00
inode.c ovl: unbless lower st_ino of unverified origin 2018-01-24 11:25:52 +01:00
Kconfig ovl: add support for "nfs_export" configuration 2018-01-24 11:25:37 +01:00
Makefile ovl: split super.c 2016-12-16 11:02:56 +01:00
namei.c ovl: use directory index entries for consistency verification 2018-01-24 11:25:52 +01:00
overlayfs.h ovl: use directory index entries for consistency verification 2018-01-24 11:25:52 +01:00
ovl_entry.h ovl: add support for "nfs_export" configuration 2018-01-24 11:25:37 +01:00
readdir.c ovl: simplify arguments to ovl_check_origin_fh() 2018-01-24 10:19:46 +01:00
super.c ovl: use directory index entries for consistency verification 2018-01-24 11:25:52 +01:00
util.c ovl: add support for "nfs_export" configuration 2018-01-24 11:25:37 +01:00