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 <dchinner@xxxxxxxxxx> >> >> 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 <dchinner@xxxxxxxxxx> >> Reviewed-by: Christoph Hellwig <hch@xxxxxx> >> --- >> 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 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html