diff options
author | Michael Halcrow <mhalcrow@us.ibm.com> | 2006-11-16 04:19:16 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-11-16 14:43:37 -0500 |
commit | a9083081b56800691e79d541638fd2fc6366db0f (patch) | |
tree | 200817d262a0d0b82243a471e78b7ab31b4526d1 /fs/ecryptfs/inode.c | |
parent | 3b9c10dc59eaaef23e5a47110c20fb554f7dba28 (diff) |
[PATCH] eCryptfs: dput() lower d_parent on rename
On rename, for both the old and new lower dentry objects, eCryptfs is
missing a dput on the lower parent directory dentry. This patch will
prevent the BUG() at fs/dcache.c:613 from being hit after renaming a file
inside eCryptfs and then doing a umount on the lower filesystem.
Signed-off-by: Michael Halcrow <mhalcrow@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/ecryptfs/inode.c')
-rw-r--r-- | fs/ecryptfs/inode.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c index ff4865d24f0..ebec8cfc189 100644 --- a/fs/ecryptfs/inode.c +++ b/fs/ecryptfs/inode.c | |||
@@ -630,6 +630,8 @@ ecryptfs_rename(struct inode *old_dir, struct dentry *old_dentry, | |||
630 | ecryptfs_copy_attr_all(old_dir, lower_old_dir_dentry->d_inode); | 630 | ecryptfs_copy_attr_all(old_dir, lower_old_dir_dentry->d_inode); |
631 | out_lock: | 631 | out_lock: |
632 | unlock_rename(lower_old_dir_dentry, lower_new_dir_dentry); | 632 | unlock_rename(lower_old_dir_dentry, lower_new_dir_dentry); |
633 | dput(lower_new_dentry->d_parent); | ||
634 | dput(lower_old_dentry->d_parent); | ||
633 | dput(lower_new_dentry); | 635 | dput(lower_new_dentry); |
634 | dput(lower_old_dentry); | 636 | dput(lower_old_dentry); |
635 | return rc; | 637 | return rc; |