diff options
author | Tony Lindgren <tony@atomide.com> | 2012-09-21 16:48:01 -0400 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2012-09-21 16:48:01 -0400 |
commit | 0c9de3c52d2baed6bc2ee44885adb418152c71c4 (patch) | |
tree | e19ab2c41ae47250fd614418022b32aa783aa563 /fs/ecryptfs/inode.c | |
parent | 6bfc82ff589a00e5fbc12b958c649d703d273c86 (diff) | |
parent | 3c7c5dab44d6c8861bc86dab924353d8d40344f8 (diff) |
Merge branch 'for_3.7/omap5_arch_timer' of git://github.com/SantoshShilimkar/linux into devel-dt-arch-timer
Conflicts:
arch/arm/mach-omap2/timer.c
Diffstat (limited to 'fs/ecryptfs/inode.c')
-rw-r--r-- | fs/ecryptfs/inode.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c index 534b129ea676..cc7709e7c508 100644 --- a/fs/ecryptfs/inode.c +++ b/fs/ecryptfs/inode.c | |||
@@ -619,6 +619,7 @@ ecryptfs_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
619 | struct dentry *lower_old_dir_dentry; | 619 | struct dentry *lower_old_dir_dentry; |
620 | struct dentry *lower_new_dir_dentry; | 620 | struct dentry *lower_new_dir_dentry; |
621 | struct dentry *trap = NULL; | 621 | struct dentry *trap = NULL; |
622 | struct inode *target_inode; | ||
622 | 623 | ||
623 | lower_old_dentry = ecryptfs_dentry_to_lower(old_dentry); | 624 | lower_old_dentry = ecryptfs_dentry_to_lower(old_dentry); |
624 | lower_new_dentry = ecryptfs_dentry_to_lower(new_dentry); | 625 | lower_new_dentry = ecryptfs_dentry_to_lower(new_dentry); |
@@ -626,6 +627,7 @@ ecryptfs_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
626 | dget(lower_new_dentry); | 627 | dget(lower_new_dentry); |
627 | lower_old_dir_dentry = dget_parent(lower_old_dentry); | 628 | lower_old_dir_dentry = dget_parent(lower_old_dentry); |
628 | lower_new_dir_dentry = dget_parent(lower_new_dentry); | 629 | lower_new_dir_dentry = dget_parent(lower_new_dentry); |
630 | target_inode = new_dentry->d_inode; | ||
629 | trap = lock_rename(lower_old_dir_dentry, lower_new_dir_dentry); | 631 | trap = lock_rename(lower_old_dir_dentry, lower_new_dir_dentry); |
630 | /* source should not be ancestor of target */ | 632 | /* source should not be ancestor of target */ |
631 | if (trap == lower_old_dentry) { | 633 | if (trap == lower_old_dentry) { |
@@ -641,6 +643,9 @@ ecryptfs_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
641 | lower_new_dir_dentry->d_inode, lower_new_dentry); | 643 | lower_new_dir_dentry->d_inode, lower_new_dentry); |
642 | if (rc) | 644 | if (rc) |
643 | goto out_lock; | 645 | goto out_lock; |
646 | if (target_inode) | ||
647 | fsstack_copy_attr_all(target_inode, | ||
648 | ecryptfs_inode_to_lower(target_inode)); | ||
644 | fsstack_copy_attr_all(new_dir, lower_new_dir_dentry->d_inode); | 649 | fsstack_copy_attr_all(new_dir, lower_new_dir_dentry->d_inode); |
645 | if (new_dir != old_dir) | 650 | if (new_dir != old_dir) |
646 | fsstack_copy_attr_all(old_dir, lower_old_dir_dentry->d_inode); | 651 | fsstack_copy_attr_all(old_dir, lower_old_dir_dentry->d_inode); |