The cloned bio has to be singlepage bvec based, so
use bio_clone_sp(), and the allocated bvec table
is enough for hold the bvecs because QUEUE_FLAG_SPLIT_MP
is set for bcache.
Signed-off-by: Ming Lei <[email protected]>
---
drivers/md/bcache/debug.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/drivers/md/bcache/debug.c b/drivers/md/bcache/debug.c
index 71a9f05918eb..0735015b0842 100644
--- a/drivers/md/bcache/debug.c
+++ b/drivers/md/bcache/debug.c
@@ -111,12 +111,10 @@ void bch_data_verify(struct cached_dev *dc, struct bio *bio)
struct bvec_iter iter, citer = { 0 };
/*
- * Once multipage bvec is supported, the bio_clone()
- * has to make sure page count in this bio can be held
- * in the new cloned bio because each single page need
- * to assign to each bvec of the new bio.
+ * QUEUE_FLAG_SPLIT_MP can make the cloned singlepage
+ * bvecs to be held in the allocated bvec table.
*/
- check = bio_clone(bio, GFP_NOIO);
+ check = bio_clone_sp(bio, GFP_NOIO);
if (!check)
return;
bio_set_op_attrs(check, REQ_OP_READ, READ_SYNC);
--
2.7.4