Btrfs: Record dirty pages tree-log pages in an extent_io tree
authorChris Mason <chris.mason@oracle.com>
Thu, 11 Sep 2008 20:17:57 +0000 (16:17 -0400)
committerChris Mason <chris.mason@oracle.com>
Thu, 25 Sep 2008 15:04:07 +0000 (11:04 -0400)
commitd0c803c4049c5ca322d4795d8b74f28768603e0e
treeb4c4f11b2f5938ad183a1771cd0b9e122709e2ff
parent31ff1cd25d376e8f499d450de177dffadc9e1c56
Btrfs: Record dirty pages tree-log pages in an extent_io tree

This is the same way the transaction code makes sure that all the
other tree blocks are safely on disk.  There's an extent_io tree
for each root, and any blocks allocated to the tree logs are
recorded in that tree.

At tree-log sync, the extent_io tree is walked to flush down the
dirty pages and wait for them.

The main benefit is less time spent walking the tree log and skipping
clean pages, and getting sequential IO down to the drive.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/ctree.h
fs/btrfs/disk-io.c
fs/btrfs/extent-tree.c
fs/btrfs/transaction.c
fs/btrfs/transaction.h
fs/btrfs/tree-log.c