summaryrefslogtreecommitdiff
path: root/disk-io.c
diff options
context:
space:
mode:
Diffstat (limited to 'disk-io.c')
-rw-r--r--disk-io.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/disk-io.c b/disk-io.c
index 71403673..a41d1660 100644
--- a/disk-io.c
+++ b/disk-io.c
@@ -70,8 +70,8 @@ void btrfs_csum_final(u32 crc, char *result)
*(__le32 *)result = ~cpu_to_le32(crc);
}
-int csum_tree_block_size(struct extent_buffer *buf, u16 csum_size,
- int verify)
+static int __csum_tree_block_size(struct extent_buffer *buf, u16 csum_size,
+ int verify, int silent)
{
char *result;
u32 len;
@@ -87,9 +87,11 @@ int csum_tree_block_size(struct extent_buffer *buf, u16 csum_size,
if (verify) {
if (memcmp_extent_buffer(buf, result, 0, csum_size)) {
- printk("checksum verify failed on %llu found %08X "
- "wanted %08X\n", (unsigned long long)buf->start,
- *((u32 *)result), *((u32*)(char *)buf->data));
+ if (!silent)
+ printk("checksum verify failed on %llu found %08X wanted %08X\n",
+ (unsigned long long)buf->start,
+ *((u32 *)result),
+ *((u32*)(char *)buf->data));
free(result);
return 1;
}
@@ -100,6 +102,16 @@ int csum_tree_block_size(struct extent_buffer *buf, u16 csum_size,
return 0;
}
+int csum_tree_block_size(struct extent_buffer *buf, u16 csum_size, int verify)
+{
+ return __csum_tree_block_size(buf, csum_size, verify, 0);
+}
+
+int verify_tree_block_csum_silent(struct extent_buffer *buf, u16 csum_size)
+{
+ return __csum_tree_block_size(buf, csum_size, 1, 1);
+}
+
int csum_tree_block(struct btrfs_root *root, struct extent_buffer *buf,
int verify)
{