vfs: merge .d_select_inode() into .d_real()
authorMiklos Szeredi <mszeredi@redhat.com>
Thu, 30 Jun 2016 06:53:27 +0000 (08:53 +0200)
committerMiklos Szeredi <mszeredi@redhat.com>
Thu, 30 Jun 2016 06:53:27 +0000 (08:53 +0200)
commit2d902671ce1cd98cdc88d78c481889a1b2996101
tree48c4bc8f90ee3209b7fba9b70169e8528b781eaa
parent4c2e07c6a29e0129e975727b9f57eede813eea85
vfs: merge .d_select_inode() into .d_real()

The two methods essentially do the same: find the real dentry/inode
belonging to an overlay dentry.  The difference is in the usage:

vfs_open() uses ->d_select_inode() and expects the function to perform
copy-up if necessary based on the open flags argument.

file_dentry() uses ->d_real() passing in the overlay dentry as well as the
underlying inode.

vfs_rename() uses ->d_select_inode() but passes zero flags.  ->d_real()
with a zero inode would have worked just as well here.

This patch merges the functionality of ->d_select_inode() into ->d_real()
by adding an 'open_flags' argument to the latter.

[Al Viro] Make the signature of d_real() match that of ->d_real() again.
And constify the inode argument, while we are at it.

Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/dcache.c
fs/namei.c
fs/open.c
fs/overlayfs/inode.c
fs/overlayfs/overlayfs.h
fs/overlayfs/super.c
include/linux/dcache.h
include/linux/fs.h