md/linear: improve bio splitting.
authorNeilBrown <neilb@suse.com>
Wed, 5 Apr 2017 04:05:51 +0000 (14:05 +1000)
committerShaohua Li <shli@fb.com>
Tue, 11 Apr 2017 17:17:55 +0000 (10:17 -0700)
commit868f604b1de2ddbdcf194d7792a0d91d7da719c1
tree24e4e2bee699aa4195a469cbb109327976c68173
parentdd7a8f5dee81ffb1794df1103f07c63fd4f1d766
md/linear: improve bio splitting.

linear_make_request() uses fs_bio_set, which is meant for filesystems
to use, and loops, possible allocating  from the same bio set multiple
times.
These behaviors can theoretically cause deadlocks, though as
linear requests are hardly ever split, it is unlikely in practice.

Change to use mddev->bio_set - otherwise unused for linear, and submit
the tail of a split request to generic_make_request() for it to
handle.

Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Shaohua Li <shli@fb.com>
drivers/md/linear.c