summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQu Wenruo <quwenruo@cn.fujitsu.com>2017-06-13 17:19:31 +0800
committerDavid Sterba <dsterba@suse.com>2017-07-12 17:53:44 +0200
commit37ddab31fd0c11b960baf14484567d4f7286874b (patch)
tree14371cbbb5f4b658882b3d5feafb0628c9e6e5fd
parent5b4c9ccce9b6f9a94431f1a571e2299f46c74bf6 (diff)
btrfs-progs: Refactor btrfs_add_system_chunk to use btrfs_fs_info
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
-rw-r--r--chunk-recover.c5
-rw-r--r--volumes.c7
-rw-r--r--volumes.h2
3 files changed, 7 insertions, 7 deletions
diff --git a/chunk-recover.c b/chunk-recover.c
index 90791fbd..f1fa7504 100644
--- a/chunk-recover.c
+++ b/chunk-recover.c
@@ -1287,13 +1287,14 @@ static int rebuild_chunk_tree(struct btrfs_trans_handle *trans,
static int rebuild_sys_array(struct recover_control *rc,
struct btrfs_root *root)
{
+ struct btrfs_fs_info *fs_info = root->fs_info;
struct btrfs_chunk *chunk;
struct btrfs_key key;
struct chunk_record *chunk_rec;
int ret = 0;
u16 num_stripes;
- btrfs_set_super_sys_array_size(root->fs_info->super_copy, 0);
+ btrfs_set_super_sys_array_size(fs_info->super_copy, 0);
list_for_each_entry(chunk_rec, &rc->good_chunks, list) {
if (!(chunk_rec->type_flags & BTRFS_BLOCK_GROUP_SYSTEM))
@@ -1310,7 +1311,7 @@ static int rebuild_sys_array(struct recover_control *rc,
key.type = BTRFS_CHUNK_ITEM_KEY;
key.offset = chunk_rec->offset;
- ret = btrfs_add_system_chunk(root, &key, chunk,
+ ret = btrfs_add_system_chunk(fs_info, &key, chunk,
btrfs_chunk_item_size(num_stripes));
free(chunk);
if (ret)
diff --git a/volumes.c b/volumes.c
index db8b931f..5b3b142d 100644
--- a/volumes.c
+++ b/volumes.c
@@ -690,11 +690,10 @@ out:
return ret;
}
-int btrfs_add_system_chunk(struct btrfs_root *root,
- struct btrfs_key *key,
+int btrfs_add_system_chunk(struct btrfs_fs_info *fs_info, struct btrfs_key *key,
struct btrfs_chunk *chunk, int item_size)
{
- struct btrfs_super_block *super_copy = root->fs_info->super_copy;
+ struct btrfs_super_block *super_copy = fs_info->super_copy;
struct btrfs_disk_key disk_key;
u32 array_size;
u8 *ptr;
@@ -1083,7 +1082,7 @@ again:
BUG_ON(ret);
if (type & BTRFS_BLOCK_GROUP_SYSTEM) {
- ret = btrfs_add_system_chunk(chunk_root, &key,
+ ret = btrfs_add_system_chunk(info, &key,
chunk, btrfs_chunk_item_size(num_stripes));
BUG_ON(ret);
}
diff --git a/volumes.h b/volumes.h
index 859fb020..783b3566 100644
--- a/volumes.h
+++ b/volumes.h
@@ -230,7 +230,7 @@ int btrfs_scan_one_device(int fd, const char *path,
u64 *total_devs, u64 super_offset, unsigned sbflags);
int btrfs_num_copies(struct btrfs_fs_info *fs_info, u64 logical, u64 len);
struct list_head *btrfs_scanned_uuids(void);
-int btrfs_add_system_chunk(struct btrfs_root *root, struct btrfs_key *key,
+int btrfs_add_system_chunk(struct btrfs_fs_info *fs_info, struct btrfs_key *key,
struct btrfs_chunk *chunk, int item_size);
int btrfs_chunk_readonly(struct btrfs_root *root, u64 chunk_offset);
struct btrfs_device *