md: deal with merge_bvec_fn in component devices better.
authorNeilBrown <neilb@suse.de>
Mon, 8 Mar 2010 05:44:38 +0000 (16:44 +1100)
committerNeilBrown <neilb@suse.de>
Tue, 16 Mar 2010 06:04:24 +0000 (17:04 +1100)
commit627a2d3c29427637f4c5d31ccc7fcbd8d312cd71
treef0de68842ca3b47d0152254e60d31cc561009119
parent25cf84cf377c0aae5dbcf937ea89bc7893db5176
md: deal with merge_bvec_fn in component devices better.

If a component device has a merge_bvec_fn then as we never call it
we must ensure we never need to.  Currently this is done by setting
max_sector to 1 PAGE, however this does not stop a bio being created
with several sub-page iovecs that would violate the merge_bvec_fn.

So instead set max_segments to 1 and set the segment boundary to the
same as a page boundary to ensure there is only ever one single-page
segment of IO requested at a time.

This can particularly be an issue when 'xen' is used as it is
known to submit multiple small buffers in a single bio.

Signed-off-by: NeilBrown <neilb@suse.de>
Cc: stable@kernel.org
drivers/md/linear.c
drivers/md/multipath.c
drivers/md/raid0.c
drivers/md/raid1.c
drivers/md/raid10.c