aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/t10-pi.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/t10-pi.h')
-rw-r--r--include/linux/t10-pi.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/linux/t10-pi.h b/include/linux/t10-pi.h
index c6aa8a3c42ed..b9626aa7e90c 100644
--- a/include/linux/t10-pi.h
+++ b/include/linux/t10-pi.h
@@ -37,9 +37,33 @@ struct t10_pi_tuple {
37#define T10_PI_APP_ESCAPE cpu_to_be16(0xffff) 37#define T10_PI_APP_ESCAPE cpu_to_be16(0xffff)
38#define T10_PI_REF_ESCAPE cpu_to_be32(0xffffffff) 38#define T10_PI_REF_ESCAPE cpu_to_be32(0xffffffff)
39 39
40static inline u32 t10_pi_ref_tag(struct request *rq)
41{
42#ifdef CONFIG_BLK_DEV_INTEGRITY
43 return blk_rq_pos(rq) >>
44 (rq->q->integrity.interval_exp - 9) & 0xffffffff;
45#else
46 return -1U;
47#endif
48}
49
40extern const struct blk_integrity_profile t10_pi_type1_crc; 50extern const struct blk_integrity_profile t10_pi_type1_crc;
41extern const struct blk_integrity_profile t10_pi_type1_ip; 51extern const struct blk_integrity_profile t10_pi_type1_ip;
42extern const struct blk_integrity_profile t10_pi_type3_crc; 52extern const struct blk_integrity_profile t10_pi_type3_crc;
43extern const struct blk_integrity_profile t10_pi_type3_ip; 53extern const struct blk_integrity_profile t10_pi_type3_ip;
44 54
55#ifdef CONFIG_BLK_DEV_INTEGRITY
56extern void t10_pi_prepare(struct request *rq, u8 protection_type);
57extern void t10_pi_complete(struct request *rq, u8 protection_type,
58 unsigned int intervals);
59#else
60static inline void t10_pi_complete(struct request *rq, u8 protection_type,
61 unsigned int intervals)
62{
63}
64static inline void t10_pi_prepare(struct request *rq, u8 protection_type)
65{
66}
67#endif
68
45#endif 69#endif