lkml.org 
[lkml]   [2020]   [Dec]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH 4/6] block: set .bi_max_vecs as actual allocated vector number
Date
bvec_alloc() may allocate more bio vectors than requested, so set .bi_max_vecs as
actual allocated vector number, instead of the requested number. This way can help
fs build bigger bio because new bio often won't be allocated until the current one
becomes full.

Signed-off-by: Ming Lei <ming.lei@redhat.com>
---
block/bio.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/block/bio.c b/block/bio.c
index 3991a5aab1bc..e567feb380b6 100644
--- a/block/bio.c
+++ b/block/bio.c
@@ -502,12 +502,13 @@ struct bio *bio_alloc_bioset(gfp_t gfp_mask, unsigned int nr_iovecs,
goto err_free;

bio->bi_flags |= idx << BVEC_POOL_OFFSET;
+ bio->bi_max_vecs = bvec_nr_vecs(idx);
} else if (nr_iovecs) {
bvl = bio->bi_inline_vecs;
+ bio->bi_max_vecs = inline_vecs;
}

bio->bi_pool = bs;
- bio->bi_max_vecs = nr_iovecs;
bio->bi_io_vec = bvl;
return bio;

--
2.28.0
\
 
 \ /
  Last update: 2020-12-30 01:35    [W:0.073 / U:0.184 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site