summaryrefslogtreecommitdiff
path: root/fs/btrfs/inode.c
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2009-04-27 07:29:05 -0400
committerChris Mason <chris.mason@oracle.com>2009-04-27 07:41:47 -0400
commit193f284d4985db0370a8a1bbdfb20df548cf9ffb (patch)
treedfa8aec1c8000e5e00deb4eee4dc385a405d74a6 /fs/btrfs/inode.c
parentb7967db75a38df4891b22efe1b0969b9357eb946 (diff)
downloadlinux-3.10-193f284d4985db0370a8a1bbdfb20df548cf9ffb.tar.gz
linux-3.10-193f284d4985db0370a8a1bbdfb20df548cf9ffb.tar.bz2
linux-3.10-193f284d4985db0370a8a1bbdfb20df548cf9ffb.zip
Btrfs: ratelimit IO error printks
Btrfs has printks for various IO errors, including bad checksums and mismatches between what we expect the block headers to contain and what we actually find on the disk. Longer term we need a real reporting mechanism for this, but for now printk is going to have to do. Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/inode.c')
-rw-r--r--fs/btrfs/inode.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index 2fdb2995be6..552e08afc7f 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -1823,10 +1823,12 @@ good:
return 0;
zeroit:
- printk(KERN_INFO "btrfs csum failed ino %lu off %llu csum %u "
- "private %llu\n", page->mapping->host->i_ino,
- (unsigned long long)start, csum,
- (unsigned long long)private);
+ if (printk_ratelimit()) {
+ printk(KERN_INFO "btrfs csum failed ino %lu off %llu csum %u "
+ "private %llu\n", page->mapping->host->i_ino,
+ (unsigned long long)start, csum,
+ (unsigned long long)private);
+ }
memset(kaddr + offset, 1, end - start + 1);
flush_dcache_page(page);
kunmap_atomic(kaddr, KM_USER0);