[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <564AA13C.108@kernel.dk>
Date: Mon, 16 Nov 2015 20:38:36 -0700
From: Jens Axboe <axboe@...nel.dk>
To: yalin wang <yalin.wang2010@...il.com>, linux-kernel@...r.kernel.org
Subject: Re: [RFC] block: change to use atomic_inc_return_release()
On 11/16/2015 08:24 PM, yalin wang wrote:
> Some arch define this atomic_inc_return_release() OP.
That is a very vague commit message, you'll need a whole lot more than
that... A commit message is supposed to describe the reason for the
change. You provide no reason for the change.
> diff --git a/block/bio.c b/block/bio.c
> index fbc558b..b251857 100644
> --- a/block/bio.c
> +++ b/block/bio.c
> @@ -310,8 +310,7 @@ static void bio_chain_endio(struct bio *bio, int error)
> static inline void bio_inc_remaining(struct bio *bio)
> {
> bio->bi_flags |= (1 << BIO_CHAIN);
> - smp_mb__before_atomic();
> - atomic_inc(&bio->__bi_remaining);
> + atomic_inc_return_release(&bio->__bi_remaining);
Are these equivalent? Where's the documentation for this primitive? The
previous code ensured that we ordered the dec of the remaining count
with the update of the flags.
--
Jens Axboe
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists