ovl: index all non-dir on copy up for NFS export

With the NFS export feature enabled, all non-dir are indexed on copy up.
The copy up origin inode of an indexed non-dir can be used as a unique
identifier of the overlay object.

The full index is also used for consistency verfication, like detecting
multiple non-hardlink uppers with the same 'origin' on lookup.

Directory index on copy up will be implemented by following patch.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
This commit is contained in:
Amir Goldstein 2017-11-22 00:08:21 +02:00 committed by Miklos Szeredi
parent 24b33ee104
commit fbd2d2074b

View File

@ -473,6 +473,10 @@ bool ovl_need_index(struct dentry *dentry)
if (!lower || !ovl_indexdir(dentry->d_sb)) if (!lower || !ovl_indexdir(dentry->d_sb))
return false; return false;
/* Index all files for NFS export and consistency verification */
if (!d_is_dir(lower) && ovl_index_all(dentry->d_sb))
return true;
/* Index only lower hardlinks on copy up */ /* Index only lower hardlinks on copy up */
if (!d_is_dir(lower) && d_inode(lower)->i_nlink > 1) if (!d_is_dir(lower) && d_inode(lower)->i_nlink > 1)
return true; return true;