btrfs: convert manual iteration to immutable biovec iteration

Use the new API with immutable biovec and bvec_iter, instead of
old-fashioned traversal through bi_io_vec[].
Follow up of 9e96618c ("btrfs: Convert to bio_for_each_segment()").

Signed-off-by: Dongsu Park <dongsu.park@profitbricks.com>
btrfs: use a correct function for bvec iteration in btrfs_csum_one_bio()

Commit 94607a8a("block: Convert various code to bio_for_each_page()")
introduced a critical bug in btrfs_csum_one_bio() using
bio_for_each_page_all() for iterating through each bvec.
That should actually call bio_for_each_page() to take the current
offset into account. Without this fix, xfstests/btrfs/012 would
end up with lockup with warnings in btrfs_add_ordered_sum(), because
iter.bi_size becomes < 0.

Signed-off-by: Dongsu Park <dongsu.park@profitbricks.com>
Multipage bvecs

Convert merging to bio_add_page()/blk_max_segment()

Signed-off-by: Kent Overstreet <kmo@daterainc.com>
kill ll_merge_requests_fn

Signed-off-by: Kent Overstreet <kmo@daterainc.com>
block: fix compile errors

Fix various compile errors,
e.g. getting rid of BIOVEC_PHYS_MERGEABLE, using bvec instead of sg,
set bio as the 2nd arg of __blk_segment_map_sg(), etc.
block: plugging

Signed-off-by: Kent Overstreet <kmo@daterainc.com>
[dpark: fix compile errors]
md: get rid of bio_list from struct task
blk-mq: remove also remaining calls to blk_attempt_plug_merge()