mirror of
https://github.com/torvalds/linux.git
synced 2026-08-04 22:38:46 +02:00
nvme: add support for passing on the application tag
With user integrity buffer, there is a way to specify the app_tag. Set the corresponding protocol specific flags and send the app_tag down. Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Anuj Gupta <anuj20.g@samsung.com> Signed-off-by: Kanchan Joshi <joshi.k@samsung.com> Reviewed-by: Keith Busch <kbusch@kernel.org> Link: https://lore.kernel.org/r/20241128112240.8867-9-anuj20.g@samsung.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
2c0487d8b1
commit
472292cd8c
|
|
@ -885,6 +885,12 @@ static blk_status_t nvme_setup_discard(struct nvme_ns *ns, struct request *req,
|
|||
return BLK_STS_OK;
|
||||
}
|
||||
|
||||
static void nvme_set_app_tag(struct request *req, struct nvme_command *cmnd)
|
||||
{
|
||||
cmnd->rw.lbat = cpu_to_le16(bio_integrity(req->bio)->app_tag);
|
||||
cmnd->rw.lbatm = cpu_to_le16(0xffff);
|
||||
}
|
||||
|
||||
static void nvme_set_ref_tag(struct nvme_ns *ns, struct nvme_command *cmnd,
|
||||
struct request *req)
|
||||
{
|
||||
|
|
@ -1025,6 +1031,10 @@ static inline blk_status_t nvme_setup_rw(struct nvme_ns *ns,
|
|||
control |= NVME_RW_APPEND_PIREMAP;
|
||||
nvme_set_ref_tag(ns, cmnd, req);
|
||||
}
|
||||
if (bio_integrity_flagged(req->bio, BIP_CHECK_APPTAG)) {
|
||||
control |= NVME_RW_PRINFO_PRCHK_APP;
|
||||
nvme_set_app_tag(req, cmnd);
|
||||
}
|
||||
}
|
||||
|
||||
cmnd->rw.control = cpu_to_le16(control);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user