On 2023/11/7 19:12, Yu Kuai wrote: > From: Yu Kuai > > If one of the underlying disks of raid or dm is set to read-only, then > each io will generate new log, which will cause message storm. This > environment is indeed problematic, however we can't make sure our > naive custormer won't do this, hence use pr_warn_ratelimited() to > prevent message storm in this case. > > Signed-off-by: Yu Kuai > --- > block/blk-core.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/block/blk-core.c b/block/blk-core.c > index 9d51e9894ece..fdf25b8d6e78 100644 > --- a/block/blk-core.c > +++ b/block/blk-core.c > @@ -501,8 +501,8 @@ static inline void bio_check_ro(struct bio *bio) > if (op_is_write(bio_op(bio)) && bdev_read_only(bio->bi_bdev)) { > if (op_is_flush(bio->bi_opf) && !bio_sectors(bio)) > return; > - pr_warn("Trying to write to read-only block-device %pg\n", > - bio->bi_bdev); > + pr_warn_ratelimited("Trying to write to read-only block-device %pg\n", > + bio->bi_bdev); Acctually, before commit 57e95e4670d1 ("block: fix and cleanup bio_check_ro") , there's only print warning once. I wrote a patch earlier, set GD_ROWR_WARNED flag for disk after emit warning. You can look at the patch in the attachment, Is it possible to solve your problem. > /* Older lvm-tools actually trigger this */ > } > }