mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
target: Pass through I/O topology for block backstores
In addition to block size (already implemented), passing through alignment offset, logical-to-phys block exponent, I/O granularity and optimal I/O length will allow initiators to properly handle layout on LUNs with 4K block sizes. Tested with various weird values via scsi_debug module. One thing to look at with this patch is the new block limits values -- instead of granularity 1 optimal 8192, Lio will now be returning whatever the block device says, which may affect performance. Signed-off-by: Andy Grover <agrover@redhat.com> Acked-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
f01b9f7339
commit
7f7caf6aa7
4 changed files with 68 additions and 3 deletions
|
@ -34,6 +34,11 @@ struct se_subsystem_api {
|
|||
sense_reason_t (*parse_cdb)(struct se_cmd *cmd);
|
||||
u32 (*get_device_type)(struct se_device *);
|
||||
sector_t (*get_blocks)(struct se_device *);
|
||||
sector_t (*get_alignment_offset_lbas)(struct se_device *);
|
||||
/* lbppbe = logical blocks per physical block exponent. see SBC-3 */
|
||||
unsigned int (*get_lbppbe)(struct se_device *);
|
||||
unsigned int (*get_io_min)(struct se_device *);
|
||||
unsigned int (*get_io_opt)(struct se_device *);
|
||||
unsigned char *(*get_sense_buffer)(struct se_cmd *);
|
||||
bool (*get_write_cache)(struct se_device *);
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue