10 Jan, 2014
2 commits
-
Referrals need an LBA map, which needs to be kept
consistent across all target port groups. So
instead of tying the map to the target port groups
I've implemented a single attribute containing the
entire map.Signed-off-by: Hannes Reinecke
Signed-off-by: Nicholas Bellinger -
Add infrastructure for referrals.
v2 changes:
- Fix unsigned long long division in core_alua_state_lba_dependent on
32-bit (Fengguang + Chen + Hannes)
- Fix compile warning in core_alua_state_lba_dependent (nab)
- Convert segment_* + sectors variables in core_alua_state_lba_dependent
to u64 (Hannes)Signed-off-by: Hannes Reinecke
Signed-off-by: Nicholas Bellinger
18 Dec, 2013
1 commit
-
We should only allocate ALUA metadata if we're actually going
to write them.Signed-off-by: Hannes Reinecke
Signed-off-by: Nicholas Bellinger
21 Nov, 2013
3 commits
-
The supported ALUA states might be different for individual
devices, so store it in a separate field.(nab: Remove unnecessary line continuation)
Signed-off-by: Hannes Reinecke
Signed-off-by: Nicholas Bellinger -
Rename ALUA_ACCESS_STATE_OPTMIZED to
ALUA_ACCESS_STATE_OPTIMIZED.Signed-off-by: Hannes Reinecke
Signed-off-by: Nicholas Bellinger -
Signed-off-by: Hannes Reinecke
Signed-off-by: Nicholas Bellinger
07 Nov, 2012
3 commits
-
Pass the sense reason as an explicit return value from the I/O submission
path instead of storing it in struct se_cmd and using negative return
values. This cleans up a lot of the code pathes, and with the sparse
annotations for the new sense_reason_t type allows for much better
error checking.(nab: Convert spc_emulate_modesense + spc_emulate_modeselect to use
sense_reason_t with Roland's MODE SELECT changes)Signed-off-by: Christoph Hellwig
Cc: Roland Dreier
Signed-off-by: Nicholas Bellinger -
We always support ALUA for virtual backends, and never for physical ones. Simplify
the code to just deal with these two cases and remove the superflous abstractions.Signed-off-by: Christoph Hellwig
Signed-off-by: Nicholas Bellinger -
Simplify the code a lot by killing the superflous struct se_subsystem_dev.
Instead se_device is allocated early on by the backend driver, which allocates
it as part of its own per-device structure, borrowing the scheme that is for
example used for inode allocation.Signed-off-by: Christoph Hellwig
Signed-off-by: Nicholas Bellinger
17 May, 2012
1 commit
-
This patch adds support for ALUA MI_REPORT_TARGET_PGS extended header
format defined within SPC-4. It changes target core ALUA emulation logic
within target_emulate_report_target_port_groups() to support both the
extended and original length only header formats.It includes adding a new 'implict_trans_secs' attribute for each ALUA
target port group to control the value returned to the application client
for an recommended implict translation timeout in seconds. By default
this value is currently set to zero, and limited up to 255 by virtue of
using a single byte in the extended header format.This value is used by target_emulate_report_target_port_groups() within
the extended header logic to set IMPLICIT TRANSITION TIME as defined by
spc4r30.Cc: Hannes Reinecke
Cc: Rob Evers
Cc: Christoph Hellwig
Cc: Roland Dreier
Signed-off-by: Nicholas Bellinger
07 May, 2012
1 commit
-
Make CDB emulation work on commands instead of tasks again as a preparation
of removing tasks completely.Signed-off-by: Christoph Hellwig
Signed-off-by: Nicholas Bellinger
04 Nov, 2011
1 commit
-
We want to be able to handle all CDBs through it and remove hacks like
always using the first task in a CDB in target_report_luns.Also rename the callback to ->execute_task to better describe its use.
Signed-off-by: Christoph Hellwig
Signed-off-by: Nicholas Bellinger
15 Jan, 2011
1 commit
-
LIO target is a full featured in-kernel target framework with the
following feature set:High-performance, non-blocking, multithreaded architecture with SIMD
support.Advanced SCSI feature set:
* Persistent Reservations (PRs)
* Asymmetric Logical Unit Assignment (ALUA)
* Protocol and intra-nexus multiplexing, load-balancing and failover (MC/S)
* Full Error Recovery (ERL=0,1,2)
* Active/active task migration and session continuation (ERL=2)
* Thin LUN provisioning (UNMAP and WRITE_SAMExx)Multiprotocol target plugins
Storage media independence:
* Virtualization of all storage media; transparent mapping of IO to LUNs
* No hard limits on number of LUNs per Target; maximum LUN size ~750 TB
* Backstores: SATA, SAS, SCSI, BluRay, DVD, FLASH, USB, ramdisk, etc.Standards compliance:
* Full compliance with IETF (RFC 3720)
* Full implementation of SPC-4 PRs and ALUASignificant code cleanups done by Christoph Hellwig.
[jejb: fix up for new block bdev exclusive interface. Minor fixes from
Randy Dunlap and Dan Carpenter.]
Signed-off-by: Nicholas A. Bellinger
Signed-off-by: James Bottomley