[14/14] xfs: use atomic_dec_not_zero()
diff mbox

Message ID 20170130184844.19290-1-fabf@skynet.be
State New
Headers show

Commit Message

Fabian Frederick Jan. 30, 2017, 6:48 p.m. UTC
instead of atomic_add_unless(value, -1, 0)

Signed-off-by: Fabian Frederick <fabf@skynet.be>
---
 fs/xfs/xfs_buf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Darrick J. Wong Jan. 31, 2017, 12:30 a.m. UTC | #1
On Mon, Jan 30, 2017 at 07:48:44PM +0100, Fabian Frederick wrote:
> instead of atomic_add_unless(value, -1, 0)
> 
> Signed-off-by: Fabian Frederick <fabf@skynet.be>
> ---
>  fs/xfs/xfs_buf.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c
> index ac3b4db..51b2167 100644
> --- a/fs/xfs/xfs_buf.c
> +++ b/fs/xfs/xfs_buf.c
> @@ -1684,7 +1684,7 @@ xfs_buftarg_isolate(
>  	 * zero. If the value is already zero, we need to reclaim the
>  	 * buffer, otherwise it gets another trip through the LRU.
>  	 */
> -	if (!atomic_add_unless(&bp->b_lru_ref, -1, 0)) {
> +	if (!atomic_dec_not_zero(&bp->b_lru_ref)) {

Hard to tell if this is correct, since there's no atomic_dec_not_zero
defined in any of my kernel trees' include/ headers and I haven't seen a
patch adding such a symbol appear on this list.  Did you hoist the
lib/fault-inject.c definition or something?

--D

>  		spin_unlock(&bp->b_lock);
>  		return LRU_ROTATE;
>  	}
> -- 
> 2.9.3
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Fabian Frederick Jan. 31, 2017, 5:18 a.m. UTC | #2
> On 31 January 2017 at 01:30 "Darrick J. Wong" <darrick.wong@oracle.com> wrote:
>
>
> On Mon, Jan 30, 2017 at 07:48:44PM +0100, Fabian Frederick wrote:
> > instead of atomic_add_unless(value, -1, 0)
> >
> > Signed-off-by: Fabian Frederick <fabf@skynet.be>
> > ---
> >  fs/xfs/xfs_buf.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c
> > index ac3b4db..51b2167 100644
> > --- a/fs/xfs/xfs_buf.c
> > +++ b/fs/xfs/xfs_buf.c
> > @@ -1684,7 +1684,7 @@ xfs_buftarg_isolate(
> >      * zero. If the value is already zero, we need to reclaim the
> >      * buffer, otherwise it gets another trip through the LRU.
> >      */
> > -   if (!atomic_add_unless(&bp->b_lru_ref, -1, 0)) {
> > +   if (!atomic_dec_not_zero(&bp->b_lru_ref)) {
>
> Hard to tell if this is correct, since there's no atomic_dec_not_zero
> defined in any of my kernel trees' include/ headers and I haven't seen a
> patch adding such a symbol appear on this list.  Did you hoist the
> lib/fault-inject.c definition or something?
>
> --D
Hi Darrick,

    Exactly. See patch 1 from
https://marc.info/?l=linux-kernel&m=148580166032209&w=2
at https://marc.info/?l=linux-kernel&m=148580166032208&w=2

Regards,
Fabian
>
> >             spin_unlock(&bp->b_lock);
> >             return LRU_ROTATE;
> >     }
> > --
> > 2.9.3
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c
index ac3b4db..51b2167 100644
--- a/fs/xfs/xfs_buf.c
+++ b/fs/xfs/xfs_buf.c
@@ -1684,7 +1684,7 @@  xfs_buftarg_isolate(
 	 * zero. If the value is already zero, we need to reclaim the
 	 * buffer, otherwise it gets another trip through the LRU.
 	 */
-	if (!atomic_add_unless(&bp->b_lru_ref, -1, 0)) {
+	if (!atomic_dec_not_zero(&bp->b_lru_ref)) {
 		spin_unlock(&bp->b_lock);
 		return LRU_ROTATE;
 	}