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/root-tree.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/root-tree.c')
-rw-r--r-- | fs/btrfs/root-tree.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/btrfs/root-tree.c b/fs/btrfs/root-tree.c index 36726696e58b..e3984f902e71 100644 --- a/fs/btrfs/root-tree.c +++ b/fs/btrfs/root-tree.c | |||
@@ -202,8 +202,9 @@ again: | |||
202 | memcpy(&found_key, &key, sizeof(key)); | 202 | memcpy(&found_key, &key, sizeof(key)); |
203 | key.offset++; | 203 | key.offset++; |
204 | btrfs_release_path(root, path); | 204 | btrfs_release_path(root, path); |
205 | dead_root = btrfs_read_fs_root_no_radix(root->fs_info, | 205 | dead_root = |
206 | &found_key); | 206 | btrfs_read_fs_root_no_radix(root->fs_info->tree_root, |
207 | &found_key); | ||
207 | if (IS_ERR(dead_root)) { | 208 | if (IS_ERR(dead_root)) { |
208 | ret = PTR_ERR(dead_root); | 209 | ret = PTR_ERR(dead_root); |
209 | goto err; | 210 | goto err; |