diff options
author | Chris Mason <chris.mason@oracle.com> | 2008-09-05 16:13:11 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2008-09-25 11:04:07 -0400 |
commit | e02119d5a7b4396c5a872582fddc8bd6d305a70a (patch) | |
tree | 825efe2a79dbca8d61256183f3526a5b5dc40dc6 /fs/btrfs/tree-defrag.c | |
parent | a1b32a5932cfac7c38b442582285f3da2a09dfd8 (diff) |
Btrfs: Add a write ahead tree log to optimize synchronous operations
File syncs and directory syncs are optimized by copying their
items into a special (copy-on-write) log tree. There is one log tree per
subvolume and the btrfs super block points to a tree of log tree roots.
After a crash, items are copied out of the log tree and back into the
subvolume. See tree-log.c for all the details.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/tree-defrag.c')
-rw-r--r-- | fs/btrfs/tree-defrag.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/btrfs/tree-defrag.c b/fs/btrfs/tree-defrag.c index cc2650b06952..b3bb5bbad76e 100644 --- a/fs/btrfs/tree-defrag.c +++ b/fs/btrfs/tree-defrag.c | |||
@@ -81,12 +81,12 @@ int btrfs_defrag_leaves(struct btrfs_trans_handle *trans, | |||
81 | memcpy(&key, &root->defrag_progress, sizeof(key)); | 81 | memcpy(&key, &root->defrag_progress, sizeof(key)); |
82 | } | 82 | } |
83 | 83 | ||
84 | path->lowest_level = 1; | ||
85 | path->keep_locks = 1; | 84 | path->keep_locks = 1; |
86 | if (cache_only) | 85 | if (cache_only) |
87 | min_trans = root->defrag_trans_start; | 86 | min_trans = root->defrag_trans_start; |
88 | 87 | ||
89 | ret = btrfs_search_forward(root, &key, path, cache_only, min_trans); | 88 | ret = btrfs_search_forward(root, &key, NULL, path, |
89 | cache_only, min_trans); | ||
90 | if (ret < 0) | 90 | if (ret < 0) |
91 | goto out; | 91 | goto out; |
92 | if (ret > 0) { | 92 | if (ret > 0) { |