Prev: [40/67] signalfd: fill in ssi_int for posix timers and message queues
Next: [087/111] mutex: Dont spin when the owner CPU is offline or other weird cases
From: Greg KH on 11 Aug 2010 20:10 2.6.34-stable review patch. If anyone has any objections, please let us know. ------------------ From: Lino Sanfilippo <LinoSanfilippo(a)gmx.de> commit 31f73bee3e170b7cabb35db9e2f4bf7919b9d036 upstream. In ecryptfs_lookup_and_interpose_lower() the lower mount is not decremented if allocation of a dentry info struct failed. As a result the lower filesystem cant be unmounted any more (since it is considered busy). This patch corrects the reference counting. Signed-off-by: Lino Sanfilippo <LinoSanfilippo(a)gmx.de> Signed-off-by: Tyler Hicks <tyhicks(a)linux.vnet.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh(a)suse.de> --- fs/ecryptfs/inode.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) --- a/fs/ecryptfs/inode.c +++ b/fs/ecryptfs/inode.c @@ -273,7 +273,7 @@ int ecryptfs_lookup_and_interpose_lower( printk(KERN_ERR "%s: Out of memory whilst attempting " "to allocate ecryptfs_dentry_info struct\n", __func__); - goto out_dput; + goto out_put; } ecryptfs_set_dentry_lower(ecryptfs_dentry, lower_dentry); ecryptfs_set_dentry_lower_mnt(ecryptfs_dentry, lower_mnt); @@ -348,8 +348,9 @@ int ecryptfs_lookup_and_interpose_lower( out_free_kmem: kmem_cache_free(ecryptfs_header_cache_2, page_virt); goto out; -out_dput: +out_put: dput(lower_dentry); + mntput(lower_mnt); d_drop(ecryptfs_dentry); out: return rc; -- 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/ |