btrfs-progs: mkfs: delete un-used parameter fd
[platform/upstream/btrfs-progs.git] / volumes.c
index db8b931..2f3943d 100644 (file)
--- a/volumes.c
+++ b/volumes.c
@@ -585,7 +585,7 @@ error:
  * the btrfs_device struct should be fully filled in
  */
 int btrfs_add_device(struct btrfs_trans_handle *trans,
-                    struct btrfs_root *root,
+                    struct btrfs_fs_info *fs_info,
                     struct btrfs_device *device)
 {
        int ret;
@@ -593,11 +593,10 @@ int btrfs_add_device(struct btrfs_trans_handle *trans,
        struct btrfs_dev_item *dev_item;
        struct extent_buffer *leaf;
        struct btrfs_key key;
+       struct btrfs_root *root = fs_info->chunk_root;
        unsigned long ptr;
        u64 free_devid = 0;
 
-       root = root->fs_info->chunk_root;
-
        path = btrfs_alloc_path();
        if (!path)
                return -ENOMEM;
@@ -635,7 +634,7 @@ int btrfs_add_device(struct btrfs_trans_handle *trans,
        ptr = (unsigned long)btrfs_device_uuid(dev_item);
        write_extent_buffer(leaf, device->uuid, ptr, BTRFS_UUID_SIZE);
        ptr = (unsigned long)btrfs_device_fsid(dev_item);
-       write_extent_buffer(leaf, root->fs_info->fsid, ptr, BTRFS_UUID_SIZE);
+       write_extent_buffer(leaf, fs_info->fsid, ptr, BTRFS_UUID_SIZE);
        btrfs_mark_buffer_dirty(leaf);
        ret = 0;
 
@@ -690,11 +689,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;
@@ -835,11 +833,11 @@ error:
                                / sizeof(struct btrfs_stripe) + 1)
 
 int btrfs_alloc_chunk(struct btrfs_trans_handle *trans,
-                     struct btrfs_root *extent_root, u64 *start,
+                     struct btrfs_fs_info *info, u64 *start,
                      u64 *num_bytes, u64 type)
 {
        u64 dev_offset;
-       struct btrfs_fs_info *info = extent_root->fs_info;
+       struct btrfs_root *extent_root = info->extent_root;
        struct btrfs_root *chunk_root = info->chunk_root;
        struct btrfs_stripe *stripes;
        struct btrfs_device *device = NULL;
@@ -1083,7 +1081,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);
        }
@@ -1101,11 +1099,11 @@ again:
  * occupied.
  */
 int btrfs_alloc_data_chunk(struct btrfs_trans_handle *trans,
-                          struct btrfs_root *extent_root, u64 *start,
+                          struct btrfs_fs_info *info, u64 *start,
                           u64 num_bytes, u64 type, int convert)
 {
        u64 dev_offset;
-       struct btrfs_fs_info *info = extent_root->fs_info;
+       struct btrfs_root *extent_root = info->extent_root;
        struct btrfs_root *chunk_root = info->chunk_root;
        struct btrfs_stripe *stripes;
        struct btrfs_device *device = NULL;
@@ -1281,6 +1279,8 @@ int btrfs_next_bg(struct btrfs_fs_info *fs_info, u64 *logical,
                        *size = ce->size;
                        return 0;
                }
+               if (!cur)
+                       ce = next_cache_extent(ce);
        }
 
        return -ENOENT;
@@ -1637,11 +1637,11 @@ btrfs_find_device_by_devid(struct btrfs_fs_devices *fs_devices,
        return NULL;
 }
 
-int btrfs_chunk_readonly(struct btrfs_root *root, u64 chunk_offset)
+int btrfs_chunk_readonly(struct btrfs_fs_info *fs_info, u64 chunk_offset)
 {
        struct cache_extent *ce;
        struct map_lookup *map;
-       struct btrfs_mapping_tree *map_tree = &root->fs_info->mapping_tree;
+       struct btrfs_mapping_tree *map_tree = &fs_info->mapping_tree;
        int readonly = 0;
        int i;
 
@@ -1650,7 +1650,7 @@ int btrfs_chunk_readonly(struct btrfs_root *root, u64 chunk_offset)
         * corresponding chunk, we will rebuild it later
         */
        ce = search_cache_extent(&map_tree->cache_tree, chunk_offset);
-       if (!root->fs_info->is_chunk_recover)
+       if (!fs_info->is_chunk_recover)
                BUG_ON(!ce);
        else
                return 0;