eCryptfs: Copy lower directory inode times and size on link
The timestamps and size of a lower inode involved in a link() call was being copied to the upper parent inode. Instead, we should be copying lower parent inode's timestamps and size to the upper parent inode. I discovered this bug using the POSIX test suite at Tuxera. Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
This commit is contained in:
Родитель
133b8f9d63
Коммит
3a8380c075
|
@ -456,8 +456,8 @@ static int ecryptfs_link(struct dentry *old_dentry, struct inode *dir,
|
|||
rc = ecryptfs_interpose(lower_new_dentry, new_dentry, dir->i_sb, 0);
|
||||
if (rc)
|
||||
goto out_lock;
|
||||
fsstack_copy_attr_times(dir, lower_new_dentry->d_inode);
|
||||
fsstack_copy_inode_size(dir, lower_new_dentry->d_inode);
|
||||
fsstack_copy_attr_times(dir, lower_dir_dentry->d_inode);
|
||||
fsstack_copy_inode_size(dir, lower_dir_dentry->d_inode);
|
||||
old_dentry->d_inode->i_nlink =
|
||||
ecryptfs_inode_to_lower(old_dentry->d_inode)->i_nlink;
|
||||
i_size_write(new_dentry->d_inode, file_size_save);
|
||||
|
|
Загрузка…
Ссылка в новой задаче