2023-04-12 05:23:55

by Jinyoung Choi

[permalink] [raw]
Subject: [PATCH 1/2] blk-integrity: add rq_integrity_payload_size helper

This provides a nice shortcut to get the size of the integrity data
for the driver like NVMe that only support a single integrity segment.

Signed-off-by: Jinyoung Choi <[email protected]>
---
include/linux/blk-integrity.h | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/include/linux/blk-integrity.h b/include/linux/blk-integrity.h
index 378b2459efe2..abf1923f4aa5 100644
--- a/include/linux/blk-integrity.h
+++ b/include/linux/blk-integrity.h
@@ -114,6 +114,13 @@ static inline struct bio_vec *rq_integrity_vec(struct request *rq)
return NULL;
return rq->bio->bi_integrity->bip_vec;
}
+
+static inline unsigned int rq_integrity_payload_size(struct request *rq)
+{
+ if (WARN_ON_ONCE(queue_max_integrity_segments(rq->q) > 1))
+ return 0;
+ return rq->bio->bi_integrity->bip_iter.bi_size;
+}
#else /* CONFIG_BLK_DEV_INTEGRITY */
static inline int blk_rq_count_integrity_sg(struct request_queue *q,
struct bio *b)
--
2.34.1


2023-04-12 05:43:55

by Chaitanya Kulkarni

[permalink] [raw]
Subject: Re: [PATCH 1/2] blk-integrity: add rq_integrity_payload_size helper


>> +
>> +static inline unsigned int rq_integrity_payload_size(struct request
>> *rq)
>> +{
>> +    if (WARN_ON_ONCE(queue_max_integrity_segments(rq->q) > 1))
>> +        return 0;
>> +    return rq->bio->bi_integrity->bip_iter.bi_size;
>> +}
>>   #else /* CONFIG_BLK_DEV_INTEGRITY */
>>   static inline int blk_rq_count_integrity_sg(struct request_queue *q,
>>                           struct bio *b)
>
> from the comments that I got in the past, you should only be adding
> a helper in the patch that is actually using it.
>
> -ck
>
>

disregard my comment, I think this is correct looking at the next patch...

-ck


2023-04-12 06:07:33

by Chaitanya Kulkarni

[permalink] [raw]
Subject: Re: [PATCH 1/2] blk-integrity: add rq_integrity_payload_size helper

On 4/11/23 22:21, Jinyoung CHOI wrote:
> This provides a nice shortcut to get the size of the integrity data
> for the driver like NVMe that only support a single integrity segment.
>
> Signed-off-by: Jinyoung Choi <[email protected]>
> ---
> include/linux/blk-integrity.h | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/include/linux/blk-integrity.h b/include/linux/blk-integrity.h
> index 378b2459efe2..abf1923f4aa5 100644
> --- a/include/linux/blk-integrity.h
> +++ b/include/linux/blk-integrity.h
> @@ -114,6 +114,13 @@ static inline struct bio_vec *rq_integrity_vec(struct request *rq)
> return NULL;
> return rq->bio->bi_integrity->bip_vec;
> }
> +
> +static inline unsigned int rq_integrity_payload_size(struct request *rq)
> +{
> + if (WARN_ON_ONCE(queue_max_integrity_segments(rq->q) > 1))
> + return 0;
> + return rq->bio->bi_integrity->bip_iter.bi_size;
> +}
> #else /* CONFIG_BLK_DEV_INTEGRITY */
> static inline int blk_rq_count_integrity_sg(struct request_queue *q,
> struct bio *b)

from the comments that I got in the past, you should only be adding
a helper in the patch that is actually using it.

-ck


2023-04-12 07:02:15

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH 1/2] blk-integrity: add rq_integrity_payload_size helper

> + if (WARN_ON_ONCE(queue_max_integrity_segments(rq->q) > 1))
> + return 0;

This should work for multiple segments as well.

2023-04-12 09:22:40

by Jinyoung Choi

[permalink] [raw]
Subject: RE:(2) [PATCH 1/2] blk-integrity: add rq_integrity_payload_size helper

>>> +
>>> +static inline unsigned int rq_integrity_payload_size(struct request
>>> *rq)
>>> +{
>>> +    if (WARN_ON_ONCE(queue_max_integrity_segments(rq->q) > 1))
>>> +        return 0;
>>> +    return rq->bio->bi_integrity->bip_iter.bi_size;
>>> +}
>>>   #else /* CONFIG_BLK_DEV_INTEGRITY */
>>>   static inline int blk_rq_count_integrity_sg(struct request_queue *q,
>>>                           struct bio *b)
>>
>> from the comments that I got in the past, you should only be adding
>> a helper in the patch that is actually using it.
>>
>> -ck
>>
>>
>
> disregard my comment, I think this is correct looking at the next patch...
>
> -ck

OK Thanks for your review :)
I sent it to the wrong email address. (result from get_maintainer.pl)
I will update your email address for cc.

Kind Regards,
Jinyoung.