From 80b81772e27d814df2e452b57ca106e26546d440 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Wed, 9 Sep 2015 06:17:56 -0700 Subject: [PATCH] Add unmarshalling of VPD BLock Limits settings for atomic writes Signed-off-by: Ronnie Sahlberg --- include/scsi-lowlevel.h | 5 +++++ lib/scsi-lowlevel.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/include/scsi-lowlevel.h b/include/scsi-lowlevel.h index cce9eda..a7144f1 100644 --- a/include/scsi-lowlevel.h +++ b/include/scsi-lowlevel.h @@ -558,6 +558,11 @@ struct scsi_inquiry_block_limits { int ugavalid; uint32_t unmap_gran_align; /* unmap_granularity_alignment */ uint64_t max_ws_len; /* maximum_write_same_length */ + + /* SBC-4 */ + uint32_t max_atomic_xfer_len; + uint32_t atomic_align; + uint32_t atomic_gran; }; struct scsi_inquiry_block_device_characteristics { diff --git a/lib/scsi-lowlevel.c b/lib/scsi-lowlevel.c index f2ff815..f39b0fb 100644 --- a/lib/scsi-lowlevel.c +++ b/lib/scsi-lowlevel.c @@ -1427,6 +1427,10 @@ scsi_inquiry_unmarshall_block_limits(struct scsi_task *task) inq->max_ws_len = (inq->max_ws_len << 32) | task_get_uint32(task, 40); + inq->max_atomic_xfer_len = task_get_uint32(task, 44); + inq->atomic_align = task_get_uint32(task, 48); + inq->atomic_gran = task_get_uint32(task, 52); + return inq; }