Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753948AbXLSRf0 (ORCPT ); Wed, 19 Dec 2007 12:35:26 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751053AbXLSRfN (ORCPT ); Wed, 19 Dec 2007 12:35:13 -0500 Received: from mx2.redhat.com ([66.187.237.31]:38832 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752174AbXLSRfM (ORCPT ); Wed, 19 Dec 2007 12:35:12 -0500 Message-ID: <47695621.6040709@redhat.com> Date: Wed, 19 Dec 2007 11:34:25 -0600 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.9 (X11/20071115) MIME-Version: 1.0 To: Linux Kernel Mailing List , Andrew Morton , Michael Halcrow CC: mike@halcrow.us, Jeff Moyer Subject: [PATCH] ecryptfs: redo dget,mntget on dentry_open failure Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1288 Lines: 35 Thanks to Jeff Moyer for pointing this out. If the RDWR dentry_open() in ecryptfs_init_persistent_file fails, it will do a dput/mntput. Need to re-take references if we retry as RDONLY. Signed-off-by: Eric Sandeen --- Index: linux-2.6.24-rc3/fs/ecryptfs/main.c =================================================================== --- linux-2.6.24-rc3.orig/fs/ecryptfs/main.c +++ linux-2.6.24-rc3/fs/ecryptfs/main.c @@ -138,11 +138,14 @@ int ecryptfs_init_persistent_file(struct inode_info->lower_file = dentry_open(lower_dentry, lower_mnt, (O_RDWR | O_LARGEFILE)); - if (IS_ERR(inode_info->lower_file)) + if (IS_ERR(inode_info->lower_file)) { + dget(lower_dentry); + mntget(lower_mnt); inode_info->lower_file = dentry_open(lower_dentry, lower_mnt, (O_RDONLY | O_LARGEFILE)); + } if (IS_ERR(inode_info->lower_file)) { printk(KERN_ERR "Error opening lower persistent file " "for lower_dentry [0x%p] and lower_mnt [0x%p]\n", -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/