Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions include/linux/t10-pi.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,19 @@ struct t10_pi_tuple {
#define T10_PI_APP_ESCAPE cpu_to_be16(0xffff)
#define T10_PI_REF_ESCAPE cpu_to_be32(0xffffffff)

static inline u32 t10_pi_ref_tag(struct request *rq)
static inline u64 full_pi_ref_tag(struct request *rq)
{
unsigned int shift = ilog2(queue_logical_block_size(rq->q));

if (IS_ENABLED(CONFIG_BLK_DEV_INTEGRITY) &&
rq->q->limits.integrity.interval_exp)
shift = rq->q->limits.integrity.interval_exp;
return blk_rq_pos(rq) >> (shift - SECTOR_SHIFT) & 0xffffffff;
return blk_rq_pos(rq) >> (shift - SECTOR_SHIFT);
}

static inline u32 t10_pi_ref_tag(struct request *rq)
{
return full_pi_ref_tag(rq) & 0xffffffff;
}

struct crc64_pi_tuple {
Expand All @@ -64,12 +69,7 @@ static inline u64 lower_48_bits(u64 n)

static inline u64 ext_pi_ref_tag(struct request *rq)
{
unsigned int shift = ilog2(queue_logical_block_size(rq->q));

if (IS_ENABLED(CONFIG_BLK_DEV_INTEGRITY) &&
rq->q->limits.integrity.interval_exp)
shift = rq->q->limits.integrity.interval_exp;
return lower_48_bits(blk_rq_pos(rq) >> (shift - SECTOR_SHIFT));
return lower_48_bits(full_pi_ref_tag(rq));
}

#endif