Displaying 6 results from an estimated 6 matches for "create_reloc_root".
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
2014 Aug 05
0
Stack dumps in use_block_rsv while rebalancing ("block rsv returned -28")
...o_page_fault+0x28c/0x550
[376007.682031] [<ffffffff8119749f>] ? page_add_file_rmap+0x6f/0xb0
[376007.682037] [<ffffffffa00c8a3c>] btrfs_copy_root+0xfc/0x2b0 [btrfs]
[376007.682041] [<ffffffff811c60b9>] ? memcg_check_events+0x29/0x50
[376007.682051] [<ffffffffa013a583>] ? create_reloc_root+0x33/0x2c0 [btrfs]
[376007.682061] [<ffffffffa013a743>] create_reloc_root+0x1f3/0x2c0 [btrfs]
[376007.682064] [<ffffffff811dd073>] ? generic_permission+0xf3/0x120
[376007.682073] [<ffffffffa0140eb8>] btrfs_init_reloc_root+0xb8/0xd0 [btrfs]
[376007.682082] [<ffffffffa00ee967...
2009 Aug 24
0
[PATCH] Btrfs: proper metadata -ENOSPC handling
...emove_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(trans);
+ }
while (1) {
- tra...
2010 Sep 03
0
[PATCH 1/2] btrfs: document where we use BUG_ON instead of error handling
...node);
- BUG_ON(ret);
+ btrfs_fixable_bug_on(ret);
btrfs_end_transaction(trans, root);
}
next:
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c
index b37d723..ce76176 100644
--- a/fs/btrfs/relocation.c
+++ b/fs/btrfs/relocation.c
@@ -1275,7 +1275,7 @@ static struct btrfs_root *create_reloc_root(struct btrfs_trans_handle *trans,
/* called by btrfs_init_reloc_root */
ret = btrfs_copy_root(trans, root, root->commit_root, &eb,
BTRFS_TREE_RELOC_OBJECTID);
- BUG_ON(ret);
+ btrfs_fixable_bug_on(ret);
btrfs_set_root_last_snapshot(&root->root_item,...
2011 Jun 21
19
[GIT PULL v3] Btrfs: improve write ahead log with sub transaction
I''ve been working to try to improve the write-ahead log''s performance,
and I found that the bottleneck addresses in the checksum items,
especially when we want to make a random write on a large file, e.g a 4G file.
Then a idea for this suggested by Chris is to use sub transaction ids and just
to log the part of inode that had changed since either the last log commit or
the last
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