summaryrefslogtreecommitdiffstats
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.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/include/linux/t10-pi.h b/include/linux/t10-pi.h
index b9626aa7e90c..3e2a80cc7b56 100644
--- a/include/linux/t10-pi.h
+++ b/include/linux/t10-pi.h
@@ -39,12 +39,13 @@ struct t10_pi_tuple {
39 39
40static inline u32 t10_pi_ref_tag(struct request *rq) 40static inline u32 t10_pi_ref_tag(struct request *rq)
41{ 41{
42 unsigned int shift = ilog2(queue_logical_block_size(rq->q));
43
42#ifdef CONFIG_BLK_DEV_INTEGRITY 44#ifdef CONFIG_BLK_DEV_INTEGRITY
43 return blk_rq_pos(rq) >> 45 if (rq->q->integrity.interval_exp)
44 (rq->q->integrity.interval_exp - 9) & 0xffffffff; 46 shift = rq->q->integrity.interval_exp;
45#else
46 return -1U;
47#endif 47#endif
48 return blk_rq_pos(rq) >> (shift - SECTOR_SHIFT) & 0xffffffff;
48} 49}
49 50
50extern const struct blk_integrity_profile t10_pi_type1_crc; 51extern const struct blk_integrity_profile t10_pi_type1_crc;