Btrfs: check-int: don't complain about balanced blocks
The xfstest btrfs/014 which tests the balance operation caused that the check_int module complained that known blocks changed their physical location. Since this is not an error in this case, only print such message if the verbose mode was enabled. Reported-by: Wang Shilong <wangshilong1991@gmail.com> Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de> Tested-by: Wang Shilong <wangshilong1991@gmail.com> Signed-off-by: Chris Mason <clm@fb.com>
This commit is contained in:
Родитель
f382e4653f
Коммит
cf90c59e68
|
@ -1323,24 +1323,25 @@ static int btrfsic_create_link_to_next_block(
|
|||
l = NULL;
|
||||
next_block->generation = BTRFSIC_GENERATION_UNKNOWN;
|
||||
} else {
|
||||
if (next_block->logical_bytenr != next_bytenr &&
|
||||
!(!next_block->is_metadata &&
|
||||
0 == next_block->logical_bytenr)) {
|
||||
printk(KERN_INFO
|
||||
"Referenced block @%llu (%s/%llu/%d)"
|
||||
" found in hash table, %c,"
|
||||
" bytenr mismatch (!= stored %llu).\n",
|
||||
next_bytenr, next_block_ctx->dev->name,
|
||||
next_block_ctx->dev_bytenr, *mirror_nump,
|
||||
btrfsic_get_block_type(state, next_block),
|
||||
next_block->logical_bytenr);
|
||||
} else if (state->print_mask & BTRFSIC_PRINT_MASK_VERBOSE)
|
||||
printk(KERN_INFO
|
||||
"Referenced block @%llu (%s/%llu/%d)"
|
||||
" found in hash table, %c.\n",
|
||||
next_bytenr, next_block_ctx->dev->name,
|
||||
next_block_ctx->dev_bytenr, *mirror_nump,
|
||||
btrfsic_get_block_type(state, next_block));
|
||||
if (state->print_mask & BTRFSIC_PRINT_MASK_VERBOSE) {
|
||||
if (next_block->logical_bytenr != next_bytenr &&
|
||||
!(!next_block->is_metadata &&
|
||||
0 == next_block->logical_bytenr))
|
||||
printk(KERN_INFO
|
||||
"Referenced block @%llu (%s/%llu/%d) found in hash table, %c, bytenr mismatch (!= stored %llu).\n",
|
||||
next_bytenr, next_block_ctx->dev->name,
|
||||
next_block_ctx->dev_bytenr, *mirror_nump,
|
||||
btrfsic_get_block_type(state,
|
||||
next_block),
|
||||
next_block->logical_bytenr);
|
||||
else
|
||||
printk(KERN_INFO
|
||||
"Referenced block @%llu (%s/%llu/%d) found in hash table, %c.\n",
|
||||
next_bytenr, next_block_ctx->dev->name,
|
||||
next_block_ctx->dev_bytenr, *mirror_nump,
|
||||
btrfsic_get_block_type(state,
|
||||
next_block));
|
||||
}
|
||||
next_block->logical_bytenr = next_bytenr;
|
||||
|
||||
next_block->mirror_num = *mirror_nump;
|
||||
|
@ -1526,7 +1527,9 @@ static int btrfsic_handle_extent_data(
|
|||
return -1;
|
||||
}
|
||||
if (!block_was_created) {
|
||||
if (next_block->logical_bytenr != next_bytenr &&
|
||||
if ((state->print_mask &
|
||||
BTRFSIC_PRINT_MASK_VERBOSE) &&
|
||||
next_block->logical_bytenr != next_bytenr &&
|
||||
!(!next_block->is_metadata &&
|
||||
0 == next_block->logical_bytenr)) {
|
||||
printk(KERN_INFO
|
||||
|
@ -1879,25 +1882,26 @@ again:
|
|||
dev_state,
|
||||
dev_bytenr);
|
||||
}
|
||||
if (block->logical_bytenr != bytenr &&
|
||||
!(!block->is_metadata &&
|
||||
block->logical_bytenr == 0))
|
||||
printk(KERN_INFO
|
||||
"Written block @%llu (%s/%llu/%d)"
|
||||
" found in hash table, %c,"
|
||||
" bytenr mismatch"
|
||||
" (!= stored %llu).\n",
|
||||
bytenr, dev_state->name, dev_bytenr,
|
||||
block->mirror_num,
|
||||
btrfsic_get_block_type(state, block),
|
||||
block->logical_bytenr);
|
||||
else if (state->print_mask & BTRFSIC_PRINT_MASK_VERBOSE)
|
||||
printk(KERN_INFO
|
||||
"Written block @%llu (%s/%llu/%d)"
|
||||
" found in hash table, %c.\n",
|
||||
bytenr, dev_state->name, dev_bytenr,
|
||||
block->mirror_num,
|
||||
btrfsic_get_block_type(state, block));
|
||||
if (state->print_mask & BTRFSIC_PRINT_MASK_VERBOSE) {
|
||||
if (block->logical_bytenr != bytenr &&
|
||||
!(!block->is_metadata &&
|
||||
block->logical_bytenr == 0))
|
||||
printk(KERN_INFO
|
||||
"Written block @%llu (%s/%llu/%d) found in hash table, %c, bytenr mismatch (!= stored %llu).\n",
|
||||
bytenr, dev_state->name,
|
||||
dev_bytenr,
|
||||
block->mirror_num,
|
||||
btrfsic_get_block_type(state,
|
||||
block),
|
||||
block->logical_bytenr);
|
||||
else
|
||||
printk(KERN_INFO
|
||||
"Written block @%llu (%s/%llu/%d) found in hash table, %c.\n",
|
||||
bytenr, dev_state->name,
|
||||
dev_bytenr, block->mirror_num,
|
||||
btrfsic_get_block_type(state,
|
||||
block));
|
||||
}
|
||||
block->logical_bytenr = bytenr;
|
||||
} else {
|
||||
if (num_pages * PAGE_CACHE_SIZE <
|
||||
|
|
Загрузка…
Ссылка в новой задаче