fs: fat: ratelimit the IO errors

In case the application is still issuing the requests after
the low-level driver is shutdown, IO errors are expected.
Ratelimit those errors with the default ratelimit to avoid
watchdog bark issue in some cases.

Change-Id: Ida436cbf1be9556f456652e72bc1dac508abd047
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
This commit is contained in:
Sahitya Tummala 2017-03-28 13:49:34 +05:30
parent 664cdd33f9
commit b6d885842e
2 changed files with 7 additions and 5 deletions

View 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;

View file

@ -760,8 +760,9 @@ retry:
fat_get_blknr_offset(sbi, i_pos, &blocknr, &offset);
bh = sb_bread(sb, blocknr);
if (!bh) {
fat_msg(sb, KERN_ERR, "unable to read inode block "
"for updating (i_pos %lld)", i_pos);
fat_msg_ratelimit(sb, KERN_ERR,
"unable to read inode block for updating (i_pos %lld)",
i_pos);
return -EIO;
}
spin_lock(&sbi->inode_hash_lock);