Btrfs: deal with DIO bios that span more than one ordered extent
authorChris Mason <chris.mason@oracle.com>
Mon, 29 Nov 2010 00:56:33 +0000 (19:56 -0500)
committerChris Mason <chris.mason@oracle.com>
Mon, 29 Nov 2010 00:56:33 +0000 (19:56 -0500)
commit163cf09c2a0ee5cac6285f9347975bd1e97725da
tree5a83cd42d57fcc4d92d12965b5eafdb472e89b02
parent450ba0ea06b6ed3612d27f2b7127a9de4160f285
Btrfs: deal with DIO bios that span more than one ordered extent

The new DIO bio splitting code has problems when the bio
spans more than one ordered extent.  This will happen as the
generic DIO code merges our get_blocks calls together into
a bigger single bio.

This fixes things by walking forward in the ordered extent
code finding all the overlapping ordered extents and completing them
all at once.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/inode.c
fs/btrfs/ordered-data.c
fs/btrfs/ordered-data.h