xfs
[Top] [All Lists]

RE: [PATCH] xfs: fix double IRELE in xfs_dqrele_inode

To: "Christoph Hellwig" <hch@xxxxxxxxxxxxx>
Subject: RE: [PATCH] xfs: fix double IRELE in xfs_dqrele_inode
From: "Alex Elder" <aelder@xxxxxxx>
Date: Mon, 12 Oct 2009 20:27:14 -0500
Cc: <xfs@xxxxxxxxxxx>
In-reply-to: <20091012234210.GA31892@xxxxxxxxxxxxx>
Thread-index: AcpLmYZZM7Fa/1h0SWexRbtmuXOrwQACodsw
Thread-topic: [PATCH] xfs: fix double IRELE in xfs_dqrele_inode
On , Christoph Hellwig wrote:
> xfs_dqrele_inode calls xfs_iput to release the ilock and a reference
> and then also calls IRELE which does a second decrement of the reference
> count.  This leads to a premature freeing of inodes when quotas were turned
> off while the filesystem was mounted.

Regression was caused by fe588ed32867b42e0d906db558ca92fd9f8b128e

Fix looks good.  I'll push it to Linus tomorrow.

> Thanks to Utako Kusaka for reporting the bug and provinding a good testcase.
> 
> Signed-off-by: Christoph Hellwig <hch@xxxxxx>
> Reported-by: Utako Kusaka <u-kusaka@xxxxxxxxxxxxx>
Reviewed-by: Alex Elder <aelder@xxxxxxx>

> Index: xfs/fs/xfs/quota/xfs_qm_syscalls.c
> ===================================================================
> --- xfs.orig/fs/xfs/quota/xfs_qm_syscalls.c   2009-10-11 13:41:52.932012023 
> -0300
> +++ xfs/fs/xfs/quota/xfs_qm_syscalls.c        2009-10-11 13:42:04.060016467 
> -0300
> @@ -876,7 +876,6 @@ xfs_dqrele_inode(
>               ip->i_gdquot = NULL;
>       }
>       xfs_iput(ip, XFS_ILOCK_EXCL);
> -     IRELE(ip);
> 
>       return 0;
>  }
> 
> _______________________________________________
> xfs mailing list
> xfs@xxxxxxxxxxx
> http://oss.sgi.com/mailman/listinfo/xfs

<Prev in Thread] Current Thread [Next in Thread>