Loading fs/btrfs/extent-tree.c +4 −4 Original line number Diff line number Diff line Loading @@ -640,7 +640,7 @@ int btrfs_inc_extent_ref(struct btrfs_trans_handle *trans, if (!path) return -ENOMEM; path->reada = 0; path->reada = 1; key.objectid = bytenr; btrfs_set_key_type(&key, BTRFS_EXTENT_ITEM_KEY); key.offset = num_bytes; Loading @@ -660,7 +660,7 @@ int btrfs_inc_extent_ref(struct btrfs_trans_handle *trans, btrfs_release_path(root->fs_info->extent_root, path); path->reada = 0; path->reada = 1; ret = btrfs_insert_extent_backref(trans, root->fs_info->extent_root, path, bytenr, root_objectid, ref_generation, owner, owner_offset); Loading Loading @@ -692,7 +692,7 @@ static int lookup_extent_ref(struct btrfs_trans_handle *trans, WARN_ON(num_bytes < root->sectorsize); path = btrfs_alloc_path(); path->reada = 0; path->reada = 1; key.objectid = bytenr; key.offset = num_bytes; btrfs_set_key_type(&key, BTRFS_EXTENT_ITEM_KEY); Loading Loading @@ -1328,7 +1328,7 @@ static int __free_extent(struct btrfs_trans_handle *trans, struct btrfs_root if (!path) return -ENOMEM; path->reada = 0; path->reada = 1; ret = lookup_extent_backref(trans, extent_root, path, bytenr, root_objectid, ref_generation, Loading fs/btrfs/volumes.c +7 −16 Original line number Diff line number Diff line Loading @@ -1029,19 +1029,8 @@ static int __btrfs_map_block(struct btrfs_mapping_tree *map_tree, int rw, else if (mirror_num) { stripe_index = mirror_num - 1; } else { int i; u64 least = (u64)-1; struct btrfs_device *cur; for (i = 0; i < map->num_stripes; i++) { cur = map->stripes[i].dev; spin_lock(&cur->io_lock); if (cur->total_ios < least) { least = cur->total_ios; stripe_index = i; } spin_unlock(&cur->io_lock); } u64 orig_stripe_nr = stripe_nr; stripe_index = do_div(orig_stripe_nr, num_stripes); } } else if (map->type & BTRFS_BLOCK_GROUP_DUP) { if (rw & (1 << BIO_RW)) Loading @@ -1050,7 +1039,6 @@ static int __btrfs_map_block(struct btrfs_mapping_tree *map_tree, int rw, stripe_index = mirror_num - 1; } else if (map->type & BTRFS_BLOCK_GROUP_RAID10) { int factor = map->num_stripes / map->sub_stripes; int orig_stripe_nr = stripe_nr; stripe_index = do_div(stripe_nr, factor); stripe_index *= map->sub_stripes; Loading @@ -1059,8 +1047,11 @@ static int __btrfs_map_block(struct btrfs_mapping_tree *map_tree, int rw, num_stripes = map->sub_stripes; else if (mirror_num) stripe_index += mirror_num - 1; else stripe_index += orig_stripe_nr % map->sub_stripes; else { u64 orig_stripe_nr = stripe_nr; stripe_index += do_div(orig_stripe_nr, map->sub_stripes); } } else { /* * after this do_div call, stripe_nr is the number of stripes Loading Loading
fs/btrfs/extent-tree.c +4 −4 Original line number Diff line number Diff line Loading @@ -640,7 +640,7 @@ int btrfs_inc_extent_ref(struct btrfs_trans_handle *trans, if (!path) return -ENOMEM; path->reada = 0; path->reada = 1; key.objectid = bytenr; btrfs_set_key_type(&key, BTRFS_EXTENT_ITEM_KEY); key.offset = num_bytes; Loading @@ -660,7 +660,7 @@ int btrfs_inc_extent_ref(struct btrfs_trans_handle *trans, btrfs_release_path(root->fs_info->extent_root, path); path->reada = 0; path->reada = 1; ret = btrfs_insert_extent_backref(trans, root->fs_info->extent_root, path, bytenr, root_objectid, ref_generation, owner, owner_offset); Loading Loading @@ -692,7 +692,7 @@ static int lookup_extent_ref(struct btrfs_trans_handle *trans, WARN_ON(num_bytes < root->sectorsize); path = btrfs_alloc_path(); path->reada = 0; path->reada = 1; key.objectid = bytenr; key.offset = num_bytes; btrfs_set_key_type(&key, BTRFS_EXTENT_ITEM_KEY); Loading Loading @@ -1328,7 +1328,7 @@ static int __free_extent(struct btrfs_trans_handle *trans, struct btrfs_root if (!path) return -ENOMEM; path->reada = 0; path->reada = 1; ret = lookup_extent_backref(trans, extent_root, path, bytenr, root_objectid, ref_generation, Loading
fs/btrfs/volumes.c +7 −16 Original line number Diff line number Diff line Loading @@ -1029,19 +1029,8 @@ static int __btrfs_map_block(struct btrfs_mapping_tree *map_tree, int rw, else if (mirror_num) { stripe_index = mirror_num - 1; } else { int i; u64 least = (u64)-1; struct btrfs_device *cur; for (i = 0; i < map->num_stripes; i++) { cur = map->stripes[i].dev; spin_lock(&cur->io_lock); if (cur->total_ios < least) { least = cur->total_ios; stripe_index = i; } spin_unlock(&cur->io_lock); } u64 orig_stripe_nr = stripe_nr; stripe_index = do_div(orig_stripe_nr, num_stripes); } } else if (map->type & BTRFS_BLOCK_GROUP_DUP) { if (rw & (1 << BIO_RW)) Loading @@ -1050,7 +1039,6 @@ static int __btrfs_map_block(struct btrfs_mapping_tree *map_tree, int rw, stripe_index = mirror_num - 1; } else if (map->type & BTRFS_BLOCK_GROUP_RAID10) { int factor = map->num_stripes / map->sub_stripes; int orig_stripe_nr = stripe_nr; stripe_index = do_div(stripe_nr, factor); stripe_index *= map->sub_stripes; Loading @@ -1059,8 +1047,11 @@ static int __btrfs_map_block(struct btrfs_mapping_tree *map_tree, int rw, num_stripes = map->sub_stripes; else if (mirror_num) stripe_index += mirror_num - 1; else stripe_index += orig_stripe_nr % map->sub_stripes; else { u64 orig_stripe_nr = stripe_nr; stripe_index += do_div(orig_stripe_nr, map->sub_stripes); } } else { /* * after this do_div call, stripe_nr is the number of stripes Loading