fat: add ratelimit to fat*_ent_bread()
authorOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Fri, 29 Apr 2022 21:38:02 +0000 (14:38 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Jun 2022 14:53:46 +0000 (16:53 +0200)
[ Upstream commit 183c3237c928109d2008c0456dff508baf692b20 ]

fat*_ent_bread() can be the cause of too many report on I/O error path.
So use fat_msg_ratelimit() instead.

Link: https://lkml.kernel.org/r/87bkxogfeq.fsf@mail.parknet.co.jp
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Reported-by: qianfan <qianfanguijin@163.com>
Tested-by: qianfan <qianfanguijin@163.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/fat/fatent.c

index 24ed1f4e48ae2f4eff647160a64ec977dbcff3bb..3ef3e773da1be88f56dc412933b4bb98737add3a 100644 (file)
@@ -92,7 +92,8 @@ static int fat12_ent_bread(struct super_block *sb, struct fat_entry *fatent,
 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;
 }
 
@@ -105,8 +106,8 @@ static int fat_ent_bread(struct super_block *sb, struct fat_entry *fatent,
        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;