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/btrfs_inode.h | |
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/btrfs_inode.h')
-rw-r--r-- | fs/btrfs/btrfs_inode.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/btrfs/btrfs_inode.h b/fs/btrfs/btrfs_inode.h index 111f90524ae1..fcc8cf27e906 100644 --- a/fs/btrfs/btrfs_inode.h +++ b/fs/btrfs/btrfs_inode.h | |||
@@ -33,6 +33,7 @@ struct btrfs_inode { | |||
33 | struct extent_io_tree io_failure_tree; | 33 | struct extent_io_tree io_failure_tree; |
34 | struct mutex csum_mutex; | 34 | struct mutex csum_mutex; |
35 | struct mutex extent_mutex; | 35 | struct mutex extent_mutex; |
36 | struct mutex log_mutex; | ||
36 | struct inode vfs_inode; | 37 | struct inode vfs_inode; |
37 | struct btrfs_ordered_inode_tree ordered_tree; | 38 | struct btrfs_ordered_inode_tree ordered_tree; |
38 | 39 | ||
@@ -44,10 +45,17 @@ struct btrfs_inode { | |||
44 | 45 | ||
45 | struct list_head delalloc_inodes; | 46 | struct list_head delalloc_inodes; |
46 | 47 | ||
48 | /* full 64 bit generation number */ | ||
49 | u64 generation; | ||
50 | |||
47 | /* | 51 | /* |
48 | * transid of the trans_handle that last modified this inode | 52 | * transid of the trans_handle that last modified this inode |
49 | */ | 53 | */ |
50 | u64 last_trans; | 54 | u64 last_trans; |
55 | /* | ||
56 | * transid that last logged this inode | ||
57 | */ | ||
58 | u64 logged_trans; | ||
51 | u64 delalloc_bytes; | 59 | u64 delalloc_bytes; |
52 | u64 disk_i_size; | 60 | u64 disk_i_size; |
53 | u32 flags; | 61 | u32 flags; |