Skip to content

Commit 45c91d8

Browse files
committed
raid5: avoid unnecessary bio data set
bio_reset doesn't change bi_io_vec and bi_max_vecs, so we don't need to set them every time. bi_private will be set before the bio is dispatched. Signed-off-by: Shaohua Li <[email protected]>
1 parent 5f9d1fd commit 45c91d8

File tree

1 file changed

+5
-8
lines changed

1 file changed

+5
-8
lines changed

drivers/md/raid5.c

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2005,7 +2005,12 @@ static struct stripe_head *alloc_stripe(struct kmem_cache *sc, gfp_t gfp,
20052005
struct r5dev *dev = &sh->dev[i];
20062006

20072007
bio_init(&dev->req);
2008+
dev->req.bi_io_vec = &dev->vec;
2009+
dev->req.bi_max_vecs = 1;
2010+
20082011
bio_init(&dev->rreq);
2012+
dev->rreq.bi_io_vec = &dev->rvec;
2013+
dev->rreq.bi_max_vecs = 1;
20092014
}
20102015
}
20112016
return sh;
@@ -2507,14 +2512,6 @@ static void raid5_build_block(struct stripe_head *sh, int i, int previous)
25072512
{
25082513
struct r5dev *dev = &sh->dev[i];
25092514

2510-
dev->req.bi_io_vec = &dev->vec;
2511-
dev->req.bi_max_vecs = 1;
2512-
dev->req.bi_private = sh;
2513-
2514-
dev->rreq.bi_io_vec = &dev->rvec;
2515-
dev->rreq.bi_max_vecs = 1;
2516-
dev->rreq.bi_private = sh;
2517-
25182515
dev->flags = 0;
25192516
dev->sector = raid5_compute_blocknr(sh, i, previous);
25202517
}

0 commit comments

Comments
 (0)