On Sun, Oct 17, 2021 at 6:50 AM Guoqing Jiang <guoqing.jiang@xxxxxxxxx> wrote: > > We shouldn't set it since write behind IO should only happen to write > mostly device. > > Signed-off-by: Guoqing Jiang <guoqing.jiang@xxxxxxxxx> Applied to md-next with a couple minor changes. > --- > drivers/md/md-bitmap.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/md/md-bitmap.c b/drivers/md/md-bitmap.c > index e29c6298ef5c..9424879d8d7e 100644 > --- a/drivers/md/md-bitmap.c > +++ b/drivers/md/md-bitmap.c > @@ -2469,11 +2469,29 @@ backlog_store(struct mddev *mddev, const char *buf, size_t len) > { > unsigned long backlog; > unsigned long old_mwb = mddev->bitmap_info.max_write_behind; > + struct md_rdev *rdev; > + bool has_write_mostly = false; > int rv = kstrtoul(buf, 10, &backlog); > if (rv) > return rv; > if (backlog > COUNTER_MAX) > return -EINVAL; > + > + /* > + * Without write mostly device, it doesn't make sense to set > + * backlog for max_write_behind. > + */ > + rdev_for_each(rdev, mddev) > + if (test_bit(WriteMostly, &rdev->flags)) { > + has_write_mostly = true; > + break; > + } Added curly brackets for multi-line block. > + if (!has_write_mostly) { > + pr_warn_ratelimited("%s: can't set backlog, no write mostly" > + " device available\n", mdname(mddev)); Merged the two strings to a single line. checkpatch.pl should complain about splitting a print string. > + return -EINVAL; > + } > + > mddev->bitmap_info.max_write_behind = backlog; > if (!backlog && mddev->serial_info_pool) { > /* serial_info_pool is not needed if backlog is zero */ > -- > 2.31.1 >