eCryptfs: Copy up lower inode attrs in getattr
The lower filesystem may do some type of inode revalidation during a getattr call. eCryptfs should take advantage of that by copying the lower inode attributes to the eCryptfs inode after a call to vfs_getattr() on the lower inode. I originally wrote this fix while working on eCryptfs on nfsv3 support, but discovered it also fixed an eCryptfs on ext4 nanosecond timestamp bug that was reported. https://bugs.launchpad.net/bugs/613873 Cc: <stable@kernel.org> Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
This commit is contained in:
parent
323ef68faf
commit
55f9cf6bba
@ -1010,6 +1010,8 @@ int ecryptfs_getattr(struct vfsmount *mnt, struct dentry *dentry,
|
|||||||
rc = vfs_getattr(ecryptfs_dentry_to_lower_mnt(dentry),
|
rc = vfs_getattr(ecryptfs_dentry_to_lower_mnt(dentry),
|
||||||
ecryptfs_dentry_to_lower(dentry), &lower_stat);
|
ecryptfs_dentry_to_lower(dentry), &lower_stat);
|
||||||
if (!rc) {
|
if (!rc) {
|
||||||
|
fsstack_copy_attr_all(dentry->d_inode,
|
||||||
|
ecryptfs_inode_to_lower(dentry->d_inode));
|
||||||
generic_fillattr(dentry->d_inode, stat);
|
generic_fillattr(dentry->d_inode, stat);
|
||||||
stat->blocks = lower_stat.blocks;
|
stat->blocks = lower_stat.blocks;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user