Btrfs: Bring back some "extent writeback" functions.

These will be required to implement subpagesize-blocksize.

Signed-off-by: chandan <chandan@linux.vnet.ibm.com>
Btrfs: check_page_uptodate: Set PG_uptodate only if PG_error is not set.

Signed-off-by: chandan <chandan@linux.vnet.ibm.com>
Btrfs: set_range_writeback: Set EXTENT_WRITEBACK bits.

This patch continues to bring in EXTENT_WRITEBACK support.

Signed-off-by: chandan <chandan@linux.vnet.ibm.com>
Btrfs: btrfs_io_bio: Track file offset range operated on by the bio.

bio_vec->{bv_offset, bv_len} cannot be relied upon by the end bio functions
to track the file offset range operated on by the bio. The new members
added will now track the file offset range.

Signed-off-by: chandan <chandan@linux.vnet.ibm.com>
Btrfs: Get rid of whole page reads.

We now track the extent range to be unlocked in
btrfs_io_bio->{start_offset, len}.  Any hole, inline extents that occur before
btrfs_bio_bio->start_offset will be unlocked and corresponding pages will be
marked PG_uptodate.

Signed-off-by: chandan <chandan@linux.vnet.ibm.com>
Btrfs: Get rid of whole page writes.

We now track the extent range to be unlocked in
btrfs_io_bio->{start_offset, len}. In the corresponding endio function all the
corresponding pages will have PG_writeback flag cleared.

Signed-off-by: chandan <chandan@linux.vnet.ibm.com>