linux/fs/overlayfs
Amir Goldstein 8a22efa15b ovl: do not try to reconnect a disconnected origin dentry
On lookup of non directory, we try to decode the origin file handle
stored in upper inode. The origin file handle is supposed to be decoded
to a disconnected non-dir dentry, which is fine, because we only need
the lower inode of a copy up origin.

However, if the origin file handle somehow turns out to be a directory
we pay the expensive cost of reconnecting the directory dentry, only to
get a mismatch file type and drop the dentry.

Optimize this case by explicitly opting out of reconnecting the dentry.
Opting-out of reconnect is done by passing a NULL acceptable callback
to exportfs_decode_fh().

While the case described above is a strange corner case that does not
really need to be optimized, the API added for this optimization will
be used by a following patch to optimize a more common case of decoding
an overlayfs file handle.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2018-04-12 12:04:49 +02:00
..
copy_up.c ovl: disambiguate ovl_encode_fh() 2018-04-12 12:04:49 +02:00
dir.c ovl: whiteout index when union nlink drops to zero 2018-01-24 11:25:56 +01:00
export.c ovl: do not try to reconnect a disconnected origin dentry 2018-04-12 12:04:49 +02:00
inode.c ovl: set lower layer st_dev only if setting lower st_ino 2018-04-12 12:04:49 +02:00
Kconfig ovl: update Kconfig texts 2018-03-07 11:47:15 +01:00
Makefile ovl: encode pure upper file handles 2018-01-24 11:25:59 +01:00
namei.c ovl: do not try to reconnect a disconnected origin dentry 2018-04-12 12:04:49 +02:00
overlayfs.h ovl: do not try to reconnect a disconnected origin dentry 2018-04-12 12:04:49 +02:00
ovl_entry.h ovl: store 'has_upper' and 'opaque' as bit flags 2018-01-24 11:25:58 +01:00
readdir.c ovl: whiteout orphan index entries on mount 2018-01-24 11:25:56 +01:00
super.c ovl: check lower ancestry on encode of lower dir file handle 2018-02-16 15:53:20 +01:00
util.c ovl: set i_ino to the value of st_ino for NFS export 2018-04-12 12:04:48 +02:00