Displaying 7 results from an estimated 7 matches for "reloc_control".
2013 Jun 13
0
[PATCH] Btrfs: fix not being able to find skinny extents during relocate
....c | 35 +++++++++++++++++++++++++++--------
1 files changed, 27 insertions(+), 8 deletions(-)
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c
index 6162d90..df3c632 100644
--- a/fs/btrfs/relocation.c
+++ b/fs/btrfs/relocation.c
@@ -3309,6 +3309,8 @@ static int __add_tree_block(struct reloc_control *rc,
struct btrfs_path *path;
struct btrfs_key key;
int ret;
+ bool skinny = btrfs_fs_incompat(rc->extent_root->fs_info,
+ SKINNY_METADATA);
if (tree_block_processed(bytenr, blocksize, rc))
return 0;
@@ -3319,10 +3321,15 @@ static int __add_tree_block(struct reloc_control *rc...
2013 Jun 04
3
[PATCH] Btrfs: fix broken nocow after balance
Balance will create reloc_root for each fs root, and it''s going to
record last_snapshot to filter shared blocks. The side effect of
setting last_snapshot is to break nocow attributes of files.
So it turns out that checking last_snapshot does not always ensure that
a node/leaf/file_extent is shared.
That''s why shared node/leaf needs to search extent tree for number of
2009 Aug 24
0
[PATCH] Btrfs: proper metadata -ENOSPC handling
...s_handle *trans,
}
remove_backref_node(cache, upper);
}
+
+ ret = btrfs_try_extend_transaction(trans, rc->extent_root, 1);
+ if (ret) {
+ ret = 0;
+ break;
+ }
}
out:
free_block_list(blocks);
@@ -3222,11 +3245,25 @@ static noinline_for_stack int relocate_block_group(struct reloc_control *rc)
rc->create_reloc_root = 1;
set_reloc_control(rc);
- trans = btrfs_start_transaction(rc->extent_root, 1);
- btrfs_commit_transaction(trans, rc->extent_root);
+ ret = btrfs_force_transaction_commit(rc->extent_root, 0);
+ if (ret) {
+ btrfs_free_path(path);
+ return PTR_ERR(tr...
2010 Sep 03
0
[PATCH 1/2] btrfs: document where we use BUG_ON instead of error handling
...ble_bug_on(ret);
ret = btrfs_free_extent(trans, dest, old_bytenr, blocksize,
0, dest->root_key.objectid, level - 1,
0);
- BUG_ON(ret);
+ btrfs_fixable_bug_on(ret);
btrfs_unlock_up_safe(path, 0);
@@ -2036,7 +2036,7 @@ static noinline_for_stack int merge_reloc_root(struct reloc_control *rc,
if (ret) {
BUG_ON(ret != -EAGAIN);
ret = btrfs_commit_transaction(trans, root);
- BUG_ON(ret);
+ btrfs_fixable_bug_on(ret);
continue;
}
@@ -2218,7 +2218,7 @@ again:
BUG_ON(root->reloc_root != reloc_root);
ret = merge_reloc_root(rc, root);
- BUG_ON(ret);
+...
2011 Aug 15
9
[patch v2 0/9] btrfs: More error handling patches
Hi all -
The following 9 patches add more error handling to the btrfs code:
- Add btrfs_panic
- Catch locking failures in {set,clear}_extent_bit
- Push up set_extent_bit errors to callers
- Push up lock_extent errors to callers
- Push up clear_extent_bit errors to callers
- Push up unlock_extent errors to callers
- Make pin_down_extent return void
- Push up btrfs_pin_extent errors to
2011 Oct 04
68
[patch 00/65] Error handling patchset v3
Hi all -
Here''s my current error handling patchset, against 3.1-rc8. Almost all of
this patchset is preparing for actual error handling. Before we start in
on that work, I''m trying to reduce the surface we need to worry about. It
turns out that there is a ton of code that returns an error code but never
actually reports an error.
The patchset has grown to 65 patches. 46 of them
2011 Aug 23
40
[PATCH 00/21] [RFC] Btrfs: restriper
Hello,
This patch series adds an initial implementation of restriper (it''s a
clever name for relocation framework that allows to do selective profile
changing and selective balancing with some goodies like pausing/resuming
and reporting progress to the user.
Profile changing is global (per-FS) so far, per-subvolume profiles
require some discussion and can be implemented in future.