md: raid1: don't use bio's vec table to manage resync pages
authorMing Lei <tom.leiming@gmail.com>
Thu, 16 Mar 2017 16:12:26 +0000 (00:12 +0800)
committerShaohua Li <shli@fb.com>
Fri, 24 Mar 2017 17:41:36 +0000 (10:41 -0700)
commit98d30c5812c343c970b5997369b4f6b197c29b3d
tree9691a1c031edc1b6ae96a369d0a80ac2d15e2ac9
parenta7234234d0d6373d0510582ab632efbf73243403
md: raid1: don't use bio's vec table to manage resync pages

Now we allocate one page array for managing resync pages, instead
of using bio's vec table to do that, and the old way is very hacky
and won't work any more if multipage bvec is enabled.

The introduced cost is that we need to allocate (128 + 16) * raid_disks
bytes per r1_bio, and it is fine because the inflight r1_bio for
resync shouldn't be much, as pointed by Shaohua.

Also the bio_reset() in raid1_sync_request() is removed because
all bios are freshly new now and not necessary to reset any more.

This patch can be thought as a cleanup too

Suggested-by: Shaohua Li <shli@kernel.org>
Signed-off-by: Ming Lei <tom.leiming@gmail.com>
Signed-off-by: Shaohua Li <shli@fb.com>
drivers/md/raid1.c