On Fri, Jan 3, 2020 at 11:48 AM Song Liu <liu.song.a23@xxxxxxxxx> wrote: > > 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"? Also, I guess we need to CC stable? Thanks, Song