Btrfs: Pass fs_info to btrfs_num_copies() instead of mapping_tree
This is required for the device replace procedure in a later step. Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de> Signed-off-by: Chris Mason <chris.mason@fusionio.com>
This commit is contained in:
parent
7ba15b7d21
commit
5d9640517d
@ -723,7 +723,7 @@ static int btrfsic_process_superblock(struct btrfsic_state *state,
|
|||||||
}
|
}
|
||||||
|
|
||||||
num_copies =
|
num_copies =
|
||||||
btrfs_num_copies(&state->root->fs_info->mapping_tree,
|
btrfs_num_copies(state->root->fs_info,
|
||||||
next_bytenr, state->metablock_size);
|
next_bytenr, state->metablock_size);
|
||||||
if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES)
|
if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES)
|
||||||
printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n",
|
printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n",
|
||||||
@ -903,7 +903,7 @@ static int btrfsic_process_superblock_dev_mirror(
|
|||||||
}
|
}
|
||||||
|
|
||||||
num_copies =
|
num_copies =
|
||||||
btrfs_num_copies(&state->root->fs_info->mapping_tree,
|
btrfs_num_copies(state->root->fs_info,
|
||||||
next_bytenr, state->metablock_size);
|
next_bytenr, state->metablock_size);
|
||||||
if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES)
|
if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES)
|
||||||
printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n",
|
printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n",
|
||||||
@ -1287,7 +1287,7 @@ static int btrfsic_create_link_to_next_block(
|
|||||||
*next_blockp = NULL;
|
*next_blockp = NULL;
|
||||||
if (0 == *num_copiesp) {
|
if (0 == *num_copiesp) {
|
||||||
*num_copiesp =
|
*num_copiesp =
|
||||||
btrfs_num_copies(&state->root->fs_info->mapping_tree,
|
btrfs_num_copies(state->root->fs_info,
|
||||||
next_bytenr, state->metablock_size);
|
next_bytenr, state->metablock_size);
|
||||||
if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES)
|
if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES)
|
||||||
printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n",
|
printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n",
|
||||||
@ -1489,7 +1489,7 @@ static int btrfsic_handle_extent_data(
|
|||||||
chunk_len = num_bytes;
|
chunk_len = num_bytes;
|
||||||
|
|
||||||
num_copies =
|
num_copies =
|
||||||
btrfs_num_copies(&state->root->fs_info->mapping_tree,
|
btrfs_num_copies(state->root->fs_info,
|
||||||
next_bytenr, state->datablock_size);
|
next_bytenr, state->datablock_size);
|
||||||
if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES)
|
if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES)
|
||||||
printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n",
|
printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n",
|
||||||
@ -2463,7 +2463,7 @@ static int btrfsic_process_written_superblock(
|
|||||||
}
|
}
|
||||||
|
|
||||||
num_copies =
|
num_copies =
|
||||||
btrfs_num_copies(&state->root->fs_info->mapping_tree,
|
btrfs_num_copies(state->root->fs_info,
|
||||||
next_bytenr, BTRFS_SUPER_INFO_SIZE);
|
next_bytenr, BTRFS_SUPER_INFO_SIZE);
|
||||||
if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES)
|
if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES)
|
||||||
printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n",
|
printk(KERN_INFO "num_copies(log_bytenr=%llu) = %d\n",
|
||||||
@ -2960,7 +2960,7 @@ static void btrfsic_cmp_log_and_dev_bytenr(struct btrfsic_state *state,
|
|||||||
struct btrfsic_block_data_ctx block_ctx;
|
struct btrfsic_block_data_ctx block_ctx;
|
||||||
int match = 0;
|
int match = 0;
|
||||||
|
|
||||||
num_copies = btrfs_num_copies(&state->root->fs_info->mapping_tree,
|
num_copies = btrfs_num_copies(state->root->fs_info,
|
||||||
bytenr, state->metablock_size);
|
bytenr, state->metablock_size);
|
||||||
|
|
||||||
for (mirror_num = 1; mirror_num <= num_copies; mirror_num++) {
|
for (mirror_num = 1; mirror_num <= num_copies; mirror_num++) {
|
||||||
|
@ -387,7 +387,7 @@ static int btree_read_extent_buffer_pages(struct btrfs_root *root,
|
|||||||
if (test_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags))
|
if (test_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
num_copies = btrfs_num_copies(&root->fs_info->mapping_tree,
|
num_copies = btrfs_num_copies(root->fs_info,
|
||||||
eb->start, eb->len);
|
eb->start, eb->len);
|
||||||
if (num_copies == 1)
|
if (num_copies == 1)
|
||||||
break;
|
break;
|
||||||
|
@ -2044,10 +2044,10 @@ static int clean_io_failure(u64 start, struct page *page)
|
|||||||
spin_unlock(&BTRFS_I(inode)->io_tree.lock);
|
spin_unlock(&BTRFS_I(inode)->io_tree.lock);
|
||||||
|
|
||||||
if (state && state->start == failrec->start) {
|
if (state && state->start == failrec->start) {
|
||||||
map_tree = &BTRFS_I(inode)->root->fs_info->mapping_tree;
|
num_copies = btrfs_num_copies(BTRFS_I(inode)->root->fs_info,
|
||||||
num_copies = btrfs_num_copies(map_tree, failrec->logical,
|
failrec->logical, failrec->len);
|
||||||
failrec->len);
|
|
||||||
if (num_copies > 1) {
|
if (num_copies > 1) {
|
||||||
|
map_tree = &BTRFS_I(inode)->root->fs_info->mapping_tree;
|
||||||
ret = repair_io_failure(map_tree, start, failrec->len,
|
ret = repair_io_failure(map_tree, start, failrec->len,
|
||||||
failrec->logical, page,
|
failrec->logical, page,
|
||||||
failrec->failed_mirror);
|
failrec->failed_mirror);
|
||||||
@ -2157,9 +2157,8 @@ static int bio_readpage_error(struct bio *failed_bio, struct page *page,
|
|||||||
* clean_io_failure() clean all those errors at once.
|
* clean_io_failure() clean all those errors at once.
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
num_copies = btrfs_num_copies(
|
num_copies = btrfs_num_copies(BTRFS_I(inode)->root->fs_info,
|
||||||
&BTRFS_I(inode)->root->fs_info->mapping_tree,
|
failrec->logical, failrec->len);
|
||||||
failrec->logical, failrec->len);
|
|
||||||
if (num_copies == 1) {
|
if (num_copies == 1) {
|
||||||
/*
|
/*
|
||||||
* we only have a single copy of the data, so don't bother with
|
* we only have a single copy of the data, so don't bother with
|
||||||
|
@ -3785,8 +3785,9 @@ void btrfs_mapping_tree_free(struct btrfs_mapping_tree *tree)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int btrfs_num_copies(struct btrfs_mapping_tree *map_tree, u64 logical, u64 len)
|
int btrfs_num_copies(struct btrfs_fs_info *fs_info, u64 logical, u64 len)
|
||||||
{
|
{
|
||||||
|
struct btrfs_mapping_tree *map_tree = &fs_info->mapping_tree;
|
||||||
struct extent_map *em;
|
struct extent_map *em;
|
||||||
struct map_lookup *map;
|
struct map_lookup *map;
|
||||||
struct extent_map_tree *em_tree = &map_tree->map_tree;
|
struct extent_map_tree *em_tree = &map_tree->map_tree;
|
||||||
|
@ -278,7 +278,7 @@ int btrfs_add_device(struct btrfs_trans_handle *trans,
|
|||||||
struct btrfs_device *device);
|
struct btrfs_device *device);
|
||||||
int btrfs_rm_device(struct btrfs_root *root, char *device_path);
|
int btrfs_rm_device(struct btrfs_root *root, char *device_path);
|
||||||
void btrfs_cleanup_fs_uuids(void);
|
void btrfs_cleanup_fs_uuids(void);
|
||||||
int btrfs_num_copies(struct btrfs_mapping_tree *map_tree, u64 logical, u64 len);
|
int btrfs_num_copies(struct btrfs_fs_info *fs_info, u64 logical, u64 len);
|
||||||
int btrfs_grow_device(struct btrfs_trans_handle *trans,
|
int btrfs_grow_device(struct btrfs_trans_handle *trans,
|
||||||
struct btrfs_device *device, u64 new_size);
|
struct btrfs_device *device, u64 new_size);
|
||||||
struct btrfs_device *btrfs_find_device(struct btrfs_root *root, u64 devid,
|
struct btrfs_device *btrfs_find_device(struct btrfs_root *root, u64 devid,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user