On Mon, Jan 23, 2023 at 9:18 PM Paul Menzel <pmenzel@xxxxxxxxxxxxx> wrote: > > Dear Xiao, > > > Thank you for the patch. > > Am 21.01.23 um 02:39 schrieb Xiao Ni: > > This helper function will be used in next patch. It's easy for > > understanding. > > > > Signed-off-by: Xiao Ni <xni@xxxxxxxxxx> > > --- > > drivers/md/md.c | 17 ++++++++++++----- > > 1 file changed, 12 insertions(+), 5 deletions(-) > > > > diff --git a/drivers/md/md.c b/drivers/md/md.c > > index 775f1dde190a..d3627aad981a 100644 > > --- a/drivers/md/md.c > > +++ b/drivers/md/md.c > > @@ -380,6 +380,13 @@ EXPORT_SYMBOL_GPL(md_new_event); > > static LIST_HEAD(all_mddevs); > > static DEFINE_SPINLOCK(all_mddevs_lock); > > > > +static bool is_md_suspended(struct mddev *mddev) > > +{ > > + if (mddev->suspended) > > + return true; > > + else > > + return false; > > suspended seems to be an integer, so this could be written as: > > return !!mddev->suspended; > > or > > return (mddev->suspended) ? true : false; > > > Kind regards, > > Paul Hi Paul Thanks for this. Regards Xiao > > > > +} > > /* Rather than calling directly into the personality make_request function, > > * IO requests come here first so that we can check if the device is > > * being suspended pending a reconfiguration. > > @@ -389,7 +396,7 @@ static DEFINE_SPINLOCK(all_mddevs_lock); > > */ > > static bool is_suspended(struct mddev *mddev, struct bio *bio) > > { > > - if (mddev->suspended) > > + if (is_md_suspended(mddev)) > > return true; > > if (bio_data_dir(bio) != WRITE) > > return false; > > @@ -434,7 +441,7 @@ void md_handle_request(struct mddev *mddev, struct bio *bio) > > goto check_suspended; > > } > > > > - if (atomic_dec_and_test(&mddev->active_io) && mddev->suspended) > > + if (atomic_dec_and_test(&mddev->active_io) && is_md_suspended(mddev)) > > wake_up(&mddev->sb_wait); > > } > > EXPORT_SYMBOL(md_handle_request); > > @@ -6217,7 +6224,7 @@ EXPORT_SYMBOL_GPL(md_stop_writes); > > static void mddev_detach(struct mddev *mddev) > > { > > md_bitmap_wait_behind_writes(mddev); > > - if (mddev->pers && mddev->pers->quiesce && !mddev->suspended) { > > + if (mddev->pers && mddev->pers->quiesce && !is_md_suspended(mddev)) { > > mddev->pers->quiesce(mddev, 1); > > mddev->pers->quiesce(mddev, 0); > > } > > @@ -8529,7 +8536,7 @@ bool md_write_start(struct mddev *mddev, struct bio *bi) > > return true; > > wait_event(mddev->sb_wait, > > !test_bit(MD_SB_CHANGE_PENDING, &mddev->sb_flags) || > > - mddev->suspended); > > + is_md_suspended(mddev)); > > if (test_bit(MD_SB_CHANGE_PENDING, &mddev->sb_flags)) { > > percpu_ref_put(&mddev->writes_pending); > > return false; > > @@ -9257,7 +9264,7 @@ void md_check_recovery(struct mddev *mddev) > > wake_up(&mddev->sb_wait); > > } > > > > - if (mddev->suspended) > > + if (is_md_suspended(mddev)) > > return; > > > > if (mddev->bitmap) >