From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boaz Harrosh Subject: Re: [PATCH 06/18] exofs: use iput() for inode reference count decrements Date: Wed, 13 Oct 2010 10:49:46 -0400 Message-ID: <4CB5C70A.2010401@panasas.com> References: <1286928961-15157-1-git-send-email-david@fromorbit.com> <1286928961-15157-7-git-send-email-david@fromorbit.com> <20101013113402.GC19456@infradead.org> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: Dave Chinner , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: Christoph Hellwig Return-path: In-Reply-To: <20101013113402.GC19456@infradead.org> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On 10/13/2010 07:34 AM, Christoph Hellwig wrote: > Btw, this looks like a nasty enough bug that it might be worth queing > up for 2.6.36. > > On Wed, Oct 13, 2010 at 11:15:49AM +1100, Dave Chinner wrote: >> From: Dave Chinner >> >> Direct modification of the inode reference count is a no-no. Convert >> the exofs decrements to call iput() instead of acting directly on >> i_count. >> >> Signed-off-by: Dave Chinner >> Reviewed-by: Christoph Hellwig >> --- >> fs/exofs/inode.c | 4 ++-- >> 1 files changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/fs/exofs/inode.c b/fs/exofs/inode.c >> index b631ff3..0fb4d4c 100644 >> --- a/fs/exofs/inode.c >> +++ b/fs/exofs/inode.c >> @@ -1101,7 +1101,7 @@ static void create_done(struct exofs_io_state *ios, void *p) >> >> set_obj_created(oi); >> >> - atomic_dec(&inode->i_count); >> + iput(inode); >> wake_up(&oi->i_wq); >> } >> >> @@ -1161,7 +1161,7 @@ struct inode *exofs_new_inode(struct inode *dir, int mode) >> ios->cred = oi->i_cred; >> ret = exofs_sbi_create(ios); >> if (ret) { >> - atomic_dec(&inode->i_count); >> + iput(inode); >> exofs_put_io_state(ios); >> return ERR_PTR(ret); >> } >> -- I suspect it's not a bug but a useless inc/dec because in all my testing I have not seen an inode leak. Let me investigate if it can be removed. So I do not think we need it for 2.6.36. I'll take this patch into my 2.6.37-rcX merge window. It should appear in linux-next by tomorrow. Hopefully followed by a removal patch later. Thanks for the catch Boaz