Btw, while you touch this code: It seems like btrfs_dio_private.subio_endio is rather pointless, as it is always set to one function for reads and otherwise never set. De-virtualizing this call could help making the code a little faster and easier to understand.
