Commit cf90c59e authored by Stefan Behrens's avatar Stefan Behrens Committed by Chris Mason
Browse files

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: default avatarWang Shilong <wangshilong1991@gmail.com>
Signed-off-by: default avatarStefan Behrens <sbehrens@giantdisaster.de>
Tested-by: default avatarWang Shilong <wangshilong1991@gmail.com>
Signed-off-by: default avatarChris Mason <clm@fb.com>
parent f382e465
Loading
Loading
Loading
Loading
+42 −38
Original line number Original line Diff line number Diff line
@@ -1323,24 +1323,25 @@ static int btrfsic_create_link_to_next_block(
		l = NULL;
		l = NULL;
		next_block->generation = BTRFSIC_GENERATION_UNKNOWN;
		next_block->generation = BTRFSIC_GENERATION_UNKNOWN;
	} else {
	} else {
		if (state->print_mask & BTRFSIC_PRINT_MASK_VERBOSE) {
			if (next_block->logical_bytenr != next_bytenr &&
			if (next_block->logical_bytenr != next_bytenr &&
			    !(!next_block->is_metadata &&
			    !(!next_block->is_metadata &&
		      0 == next_block->logical_bytenr)) {
			      0 == next_block->logical_bytenr))
				printk(KERN_INFO
				printk(KERN_INFO
			       "Referenced block @%llu (%s/%llu/%d)"
				       "Referenced block @%llu (%s/%llu/%d) found in hash table, %c, bytenr mismatch (!= stored %llu).\n",
			       " found in hash table, %c,"
			       " bytenr mismatch (!= stored %llu).\n",
				       next_bytenr, next_block_ctx->dev->name,
				       next_bytenr, next_block_ctx->dev->name,
				       next_block_ctx->dev_bytenr, *mirror_nump,
				       next_block_ctx->dev_bytenr, *mirror_nump,
			       btrfsic_get_block_type(state, next_block),
				       btrfsic_get_block_type(state,
							      next_block),
				       next_block->logical_bytenr);
				       next_block->logical_bytenr);
		} else if (state->print_mask & BTRFSIC_PRINT_MASK_VERBOSE)
			else
				printk(KERN_INFO
				printk(KERN_INFO
			       "Referenced block @%llu (%s/%llu/%d)"
				       "Referenced block @%llu (%s/%llu/%d) found in hash table, %c.\n",
			       " found in hash table, %c.\n",
				       next_bytenr, next_block_ctx->dev->name,
				       next_bytenr, next_block_ctx->dev->name,
				       next_block_ctx->dev_bytenr, *mirror_nump,
				       next_block_ctx->dev_bytenr, *mirror_nump,
			       btrfsic_get_block_type(state, next_block));
				       btrfsic_get_block_type(state,
							      next_block));
		}
		next_block->logical_bytenr = next_bytenr;
		next_block->logical_bytenr = next_bytenr;


		next_block->mirror_num = *mirror_nump;
		next_block->mirror_num = *mirror_nump;
@@ -1526,7 +1527,9 @@ static int btrfsic_handle_extent_data(
				return -1;
				return -1;
			}
			}
			if (!block_was_created) {
			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 &&
				    !(!next_block->is_metadata &&
				      0 == next_block->logical_bytenr)) {
				      0 == next_block->logical_bytenr)) {
					printk(KERN_INFO
					printk(KERN_INFO
@@ -1879,25 +1882,26 @@ again:
							       dev_state,
							       dev_state,
							       dev_bytenr);
							       dev_bytenr);
			}
			}
			if (state->print_mask & BTRFSIC_PRINT_MASK_VERBOSE) {
				if (block->logical_bytenr != bytenr &&
				if (block->logical_bytenr != bytenr &&
				    !(!block->is_metadata &&
				    !(!block->is_metadata &&
				      block->logical_bytenr == 0))
				      block->logical_bytenr == 0))
					printk(KERN_INFO
					printk(KERN_INFO
				       "Written block @%llu (%s/%llu/%d)"
					       "Written block @%llu (%s/%llu/%d) found in hash table, %c, bytenr mismatch (!= stored %llu).\n",
				       " found in hash table, %c,"
					       bytenr, dev_state->name,
				       " bytenr mismatch"
					       dev_bytenr,
				       " (!= stored %llu).\n",
				       bytenr, dev_state->name, dev_bytenr,
					       block->mirror_num,
					       block->mirror_num,
				       btrfsic_get_block_type(state, block),
					       btrfsic_get_block_type(state,
								      block),
					       block->logical_bytenr);
					       block->logical_bytenr);
			else if (state->print_mask & BTRFSIC_PRINT_MASK_VERBOSE)
				else
					printk(KERN_INFO
					printk(KERN_INFO
				       "Written block @%llu (%s/%llu/%d)"
					       "Written block @%llu (%s/%llu/%d) found in hash table, %c.\n",
				       " found in hash table, %c.\n",
					       bytenr, dev_state->name,
				       bytenr, dev_state->name, dev_bytenr,
					       dev_bytenr, block->mirror_num,
				       block->mirror_num,
					       btrfsic_get_block_type(state,
				       btrfsic_get_block_type(state, block));
								      block));
			}
			block->logical_bytenr = bytenr;
			block->logical_bytenr = bytenr;
		} else {
		} else {
			if (num_pages * PAGE_CACHE_SIZE <
			if (num_pages * PAGE_CACHE_SIZE <