From: Christian Ehrhardt on

Hi,

the following patch removes a d_drop in ecryptfs that is bogus IMHO.
This d_drop unhashes a perfectly valid and reachable dentry in the
lower FS. The patch fixes this perfectly reproducible kernel oops:

https://bugzilla.kernel.org/show_bug.cgi?id=10907

It and may or may not be related to this ecryptfs bug:

https://bugs.launchpad.net/ecryptfs/+bug/363734

At least the BUG_ON is on a dentry that should not be unhashed but is.

regards Christian


Signed-off-by: Christian Ehrhardt <lk(a)c--e.de>

diff --git a/fs/ecryptfs/super.c b/fs/ecryptfs/super.c
index b15a43a..1a037f7 100644
--- a/fs/ecryptfs/super.c
+++ b/fs/ecryptfs/super.c
@@ -85,7 +85,6 @@ static void ecryptfs_destroy_inode(struct inode *inode)
if (lower_dentry->d_inode) {
fput(inode_info->lower_file);
inode_info->lower_file = NULL;
- d_drop(lower_dentry);
}
}
ecryptfs_destroy_crypt_stat(&inode_info->crypt_stat);
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/