Displaying 9 results from an estimated 9 matches for "btrfs_set_lock_blocking".
2013 Oct 07
0
[PATCH] Btrfs: cleanup reserved space when freeing tree log on error
...s(-)
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index 964c583..849b729 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -2151,11 +2151,13 @@ static noinline int walk_down_log_tree(struct btrfs_trans_handle *trans,
return ret;
}
- btrfs_tree_lock(next);
- btrfs_set_lock_blocking(next);
- clean_tree_block(trans, root, next);
- btrfs_wait_tree_block_writeback(next);
- btrfs_tree_unlock(next);
+ if (trans) {
+ btrfs_tree_lock(next);
+ btrfs_set_lock_blocking(next);
+ clean_tree_block(trans, root, next);
+ btrfs_wait_tree_block_writeback(next);
+...
2009 Jul 07
0
[PATCH] speed up snapshot dropping
...->root_key.offset)
+ return 1;
+
+ bytenr = btrfs_node_blockptr(path->nodes[level], path->slots[level]);
+ blocksize = btrfs_level_size(root, level - 1);
+
+ if (wc->stage == DROP_REFERENCE) {
+ next = btrfs_find_create_tree_block(root, bytenr, blocksize);
+ btrfs_tree_lock(next);
+ btrfs_set_lock_blocking(next);
+
+ ret = btrfs_lookup_extent_info(trans, root, bytenr, blocksize,
+ &wc->refs[level - 1],
+ &wc->flags[level - 1]);
+ BUG_ON(ret);
+ BUG_ON(wc->refs[level - 1] == 0);
+
+ if (wc->refs[level - 1] > 1) {
+ if (!wc->update_ref ||
+ ge...
2012 Jul 31
0
[PATCH V2 1/2] Btrfs: fix error path in create_pending_snapshot()
...btrfs_set_root_last_snapshot(&root->root_item, trans->transid);
@@ -1021,7 +1017,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
if (ret) {
btrfs_tree_unlock(old);
free_extent_buffer(old);
- goto abort_trans_dput;
+ goto abort_trans;
}
btrfs_set_lock_blocking(old);
@@ -1031,7 +1027,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
btrfs_tree_unlock(old);
free_extent_buffer(old);
if (ret)
- goto abort_trans_dput;
+ goto abort_trans;
/* see comments in should_cow_block() */
root->force_cow = 1;
@@ -1044,7...
2012 Sep 06
2
[PATCH V4 01/12] Btrfs: fix error path in create_pending_snapshot()
...btrfs_set_root_last_snapshot(&root->root_item, trans->transid);
@@ -1074,7 +1069,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
if (ret) {
btrfs_tree_unlock(old);
free_extent_buffer(old);
- goto abort_trans_dput;
+ goto abort_trans;
}
btrfs_set_lock_blocking(old);
@@ -1084,7 +1079,7 @@ static noinline int create_pending_snapshot(struct btrfs_trans_handle *trans,
btrfs_tree_unlock(old);
free_extent_buffer(old);
if (ret)
- goto abort_trans_dput;
+ goto abort_trans;
/* see comments in should_cow_block() */
root->force_cow = 1;
@@ -1097,7...
2009 Nov 12
0
[PATCH 03/12] Btrfs: Rewrite btrfs_drop_extents
...do because we don''t know
- * how splitting affects compression
- */
- btrfs_set_file_extent_ram_bytes(leaf, extent,
- ram_bytes);
- btrfs_set_file_extent_type(leaf, extent, found_type);
-
- btrfs_unlock_up_safe(path, 1);
- btrfs_mark_buffer_dirty(path->nodes[0]);
- btrfs_set_lock_blocking(path->nodes[0]);
-
- path->leave_spinning = 0;
- btrfs_release_path(root, path);
- if (disk_bytenr != 0)
- inode_add_bytes(inode, extent_end - end);
+ path->slots[0]++;
+ goto next_slot;
}
- if (found_extent && !keep) {
- u64 old_disk_bytenr = le64_to_cpu(old.d...
2010 Oct 08
5
Slow link/Capacity changed + Kernel OOPS... possible hardware issues, ideas?
...0:52 (none) kernel: [<f898013a>] split_leaf+0x5fa/0x700 [btrfs]
Oct 8 02:40:52 (none) kernel: [<f897a355>] ? leaf_space_used+0x85/0xb0 [btrfs]
Oct 8 02:40:52 (none) kernel: [<f897e745>] ?
btrfs_leaf_free_space+0x45/0x90 [btrfs]
Oct 8 02:40:52 (none) kernel: [<f89c9e4d>] ?
btrfs_set_lock_blocking+0x1d/0x30 [btrfs]
Oct 8 02:40:52 (none) kernel: [<f8980a4f>]
btrfs_search_slot+0x5ef/0x670 [btrfs]
Oct 8 02:40:52 (none) kernel: [<f89817d3>]
btrfs_insert_empty_items+0x53/0xa0 [btrfs]
Oct 8 02:40:52 (none) kernel: [<f898bb06>]
run_clustered_refs+0x626/0x8c0 [btrfs]
Oct 8 02:4...
2010 Mar 02
3
2.6.33 high cpu usage
With the ATI bug I was hitting earlier fixed, only my btrfs partition
continues to show high cpu usage for some operations.
Rsync, git pull, git checkout and svn up are typicall operations which
trigger the high cpu usage.
As an example, this perf report is from using git checkout to change to
a new branch; the change needed to checkout 208 files out of about 1600
total files. du(1) reports
2010 Sep 03
0
[PATCH 1/2] btrfs: document where we use BUG_ON instead of error handling
...owner(leaf),
key.objectid, key.offset);
- BUG_ON(ret);
+ btrfs_fixable_bug_on(ret);
}
if (dirty)
btrfs_mark_buffer_dirty(leaf);
@@ -1672,7 +1672,7 @@ again:
if (cow) {
ret = btrfs_cow_block(trans, dest, eb, NULL, 0, &eb);
- BUG_ON(ret);
+ btrfs_fixable_bug_on(ret);
}
btrfs_set_lock_blocking(eb);
@@ -1728,7 +1728,7 @@ again:
if (cow) {
ret = btrfs_cow_block(trans, dest, eb, parent,
slot, &eb);
- BUG_ON(ret);
+ btrfs_fixable_bug_on(ret);
}
btrfs_set_lock_blocking(eb);
@@ -1753,7 +1753,7 @@ again:
path->lowest_level = level;
ret = btrf...
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