ovl: decide if revalidate needed on a per-dentry basis
authorMiklos Szeredi <mszeredi@redhat.com>
Tue, 17 Mar 2020 14:04:22 +0000 (15:04 +0100)
committerMiklos Szeredi <mszeredi@redhat.com>
Tue, 17 Mar 2020 14:04:22 +0000 (15:04 +0100)
commitf428884456192230ba1573e4028fb9282ffa2bb7
treebf4c8ad98aaecb0ad80dc6d43f6a10ea005d67be
parent7925dad839e70ab43140e26d6b93e807b5969f05
ovl: decide if revalidate needed on a per-dentry basis

Allow completely skipping ->revalidate() on a per-dentry basis, in case the
underlying layers used for a dentry do not themselves have ->revalidate().

E.g. negative overlay dentry has no underlying layers, hence revalidate is
unnecessary.  Or if lower layer is remote but overlay dentry is pure-upper,
then can skip revalidate.

The following places need to update whether the dentry needs revalidate or
not:

 - fill-super (root dentry)
 - lookup
 - create
 - fh_to_dentry

Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/overlayfs/dir.c
fs/overlayfs/export.c
fs/overlayfs/namei.c
fs/overlayfs/overlayfs.h
fs/overlayfs/super.c
fs/overlayfs/util.c