target: Pass through I/O topology for block backstores
authorAndy Grover <agrover@redhat.com>
Mon, 11 Nov 2013 16:59:17 +0000 (08:59 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Tue, 12 Nov 2013 21:44:54 +0000 (13:44 -0800)
commit7f7caf6aa74a4f4ad21ebe08bf23b594fce45ca7
tree058c55e859712486b9f6a8a20f3ea46add3a30eb
parentf01b9f73392b48c6cda7c2c66594c73137c776da
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>
drivers/target/target_core_iblock.c
drivers/target/target_core_sbc.c
drivers/target/target_core_spc.c
include/target/target_core_backend.h