On Fri, Jan 3, 2020 at 5:56 AM <jgq516@xxxxxxxxx> wrote: > > From: Guoqing Jiang <guoqing.jiang@xxxxxxxxxxxxxxx> > [...] > --- > drivers/md/raid5.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c > index d4d3b67ffbba..70ef2367fa64 100644 > --- a/drivers/md/raid5.c > +++ b/drivers/md/raid5.c > @@ -5481,7 +5481,9 @@ static void release_stripe_plug(struct mddev *mddev, > INIT_LIST_HEAD(cb->temp_inactive_list + i); > } > > - if (!test_and_set_bit(STRIPE_ON_UNPLUG_LIST, &sh->state)) > + if (!atomic_read(&sh->count) == 0 && "!atomic_read(&sh->count) == 0" is confusing. Do you actually mean "atomic_read(&sh->count) == 0"? Thanks, Song