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>
Showing
- fs/btrfs/Makefile 1 addition, 2 deletionsfs/btrfs/Makefile
- fs/btrfs/btrfs_inode.h 8 additions, 0 deletionsfs/btrfs/btrfs_inode.h
- fs/btrfs/compat.h 15 additions, 0 deletionsfs/btrfs/compat.h
- fs/btrfs/ctree.c 54 additions, 19 deletionsfs/btrfs/ctree.c
- fs/btrfs/ctree.h 69 additions, 3 deletionsfs/btrfs/ctree.h
- fs/btrfs/dir-item.c 3 additions, 0 deletionsfs/btrfs/dir-item.c
- fs/btrfs/disk-io.c 117 additions, 21 deletionsfs/btrfs/disk-io.c
- fs/btrfs/disk-io.h 7 additions, 1 deletionfs/btrfs/disk-io.h
- fs/btrfs/extent-tree.c 75 additions, 18 deletionsfs/btrfs/extent-tree.c
- fs/btrfs/file.c 34 additions, 5 deletionsfs/btrfs/file.c
- fs/btrfs/inode.c 134 additions, 127 deletionsfs/btrfs/inode.c
- fs/btrfs/root-tree.c 3 additions, 2 deletionsfs/btrfs/root-tree.c
- fs/btrfs/transaction.c 40 additions, 5 deletionsfs/btrfs/transaction.c
- fs/btrfs/transaction.h 1 addition, 0 deletionsfs/btrfs/transaction.h
- fs/btrfs/tree-defrag.c 2 additions, 2 deletionsfs/btrfs/tree-defrag.c
- fs/btrfs/tree-log.c 2804 additions, 0 deletionsfs/btrfs/tree-log.c
- fs/btrfs/tree-log.h 41 additions, 0 deletionsfs/btrfs/tree-log.h
Please register or sign in to comment