fat*_ent_bread() can be the cause of too many report on I/O error path. So use fat_msg_ratelimit() instead. Reported-by: qianfan <qianfanguijin@xxxxxxx> Tested-by: qianfan <qianfanguijin@xxxxxxx> Signed-off-by: OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx> --- fs/fat/fatent.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/fs/fat/fatent.c b/fs/fat/fatent.c index 978ac67..1db348f 100644 --- a/fs/fat/fatent.c 2022-03-28 14:34:04.582208819 +0900 +++ b/fs/fat/fatent.c 2022-03-28 14:39:26.884325073 +0900 @@ -94,7 +94,8 @@ static int fat12_ent_bread(struct super_ err_brelse: brelse(bhs[0]); err: - fat_msg(sb, KERN_ERR, "FAT read failed (blocknr %llu)", (llu)blocknr); + fat_msg_ratelimit(sb, KERN_ERR, "FAT read failed (blocknr %llu)", + (llu)blocknr); return -EIO; } @@ -107,8 +108,8 @@ static int fat_ent_bread(struct super_bl fatent->fat_inode = MSDOS_SB(sb)->fat_inode; fatent->bhs[0] = sb_bread(sb, blocknr); if (!fatent->bhs[0]) { - fat_msg(sb, KERN_ERR, "FAT read failed (blocknr %llu)", - (llu)blocknr); + fat_msg_ratelimit(sb, KERN_ERR, "FAT read failed (blocknr %llu)", + (llu)blocknr); return -EIO; } fatent->nr_bhs = 1; _ -- OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>