Re: [PATCHv2] blk-mq: set the nr_integrity_segments from bio

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Sep 03, 2024 at 12:13:25PM -0700, Keith Busch wrote:
> From: Keith Busch <kbusch@xxxxxxxxxx>
> 
> This value is used for potential merging later.
> 
> Signed-off-by: Keith Busch <kbusch@xxxxxxxxxx>
> ---
> v1->v2:
> 
> Check the bio actually has integrity before counting the segments. I
> previously tested v1 with additional experimental patches atop that
> addressed the problem differently and didn't notice the obvious API
> requirement.
> 
>  block/blk-mq.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/block/blk-mq.c b/block/blk-mq.c
> index 36abbaefe3874..3ed5181c75610 100644
> --- a/block/blk-mq.c
> +++ b/block/blk-mq.c
> @@ -2546,6 +2546,10 @@ static void blk_mq_bio_to_request(struct request *rq, struct bio *bio,
>  	rq->__sector = bio->bi_iter.bi_sector;
>  	rq->write_hint = bio->bi_write_hint;
>  	blk_rq_bio_prep(rq, bio, nr_segs);
> +#if defined(CONFIG_BLK_DEV_INTEGRITY)
> +	if (bio->bi_opf & REQ_INTEGRITY)
> +		rq->nr_integrity_segments = blk_rq_count_integrity_sg(rq->q, bio);

Hmm.  The current model is that drivers are supposed to
clal this, which they should stop doing now that the block layer
maintains this count.  So I think this needs a bit more work, after
which blk_rq_count_integrity_sg is also unexported, nad preferably
also has a name that drops the incorrect _sg.





[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux