Commit f91cd54d authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Li Nan
Browse files

block: reuse BIO_INLINE_VECS for integrity bvecs

mainline inclusion
from mainline-v5.12-rc1
commit dc0b8a57
bugzilla: https://gitee.com/openeuler/kernel/issues/IB7FJU

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=dc0b8a57ad7b05036fcb19a5bf0319467597e67a



--------------------------------

bvec_alloc always uses biovec_slabs, and thus always needs to use the
same number of inline vecs.  Share a single definition for the data
and integrity bvecs.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>

Conflicts:
  block/bio.c
  block/blk.h
[Commit 82b10af05f7a ("[Huawei] blk-io-hierarchy: factor out a new struct
bio_hierarchy_data from bio") add inclusion of "blk-io-hierarchy/stats.h";
commit eec716a1 ("block: move three bvec helpers declaration into
private helper") move declarations of three bvec helpers after
blk_freeze_queue.]
Signed-off-by: default avatarLi Lingfeng <lilingfeng3@huawei.com>
Signed-off-by: default avatarLi Nan <linan122@huawei.com>
parent 25a1e372
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -14,8 +14,6 @@
#include <linux/slab.h>
#include "blk.h"

#define BIP_INLINE_VECS	4

static struct kmem_cache *bip_slab;
static struct workqueue_struct *kintegrityd_wq;

@@ -63,7 +61,7 @@ struct bio_integrity_payload *bio_integrity_alloc(struct bio *bio,
		inline_vecs = nr_vecs;
	} else {
		bip = mempool_alloc(&bs->bio_integrity_pool, gfp_mask);
		inline_vecs = BIP_INLINE_VECS;
		inline_vecs = BIO_INLINE_VECS;
	}

	if (unlikely(!bip))
@@ -480,6 +478,6 @@ void __init bio_integrity_init(void)

	bip_slab = kmem_cache_create("bio_integrity_payload",
				     sizeof(struct bio_integrity_payload) +
				     sizeof(struct bio_vec) * BIP_INLINE_VECS,
				     sizeof(struct bio_vec) * BIO_INLINE_VECS,
				     0, SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
}
+0 −6
Original line number Diff line number Diff line
@@ -24,12 +24,6 @@
#include "blk.h"
#include "blk-rq-qos.h"

/*
 * Test patch to inline a certain number of bi_io_vec's inside the bio
 * itself, to shrink a bio data allocation from two mempool calls to one
 */
#define BIO_INLINE_VECS		4

/*
 * if you change this list, also change bvec_alloc or things will
 * break badly! cannot be bigger than what you can fit into an
+1 −0
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ void blk_free_flush_queue(struct blk_flush_queue *q);

void blk_freeze_queue(struct request_queue *q);

#define BIO_INLINE_VECS 4
static inline bool biovec_phys_mergeable(struct request_queue *q,
		struct bio_vec *vec1, struct bio_vec *vec2)
{