Hi Nic, I've finally bitten the bullet and updated the ALUA support for TCM. Major points here: - Make supported ALUA states configurable - Asynchronous Transitioning mode; instead of using sleep() I've pushed out the final transition back from 'Transitioning' onto a workqueue. With this I've enabled the 'implicit transition time' to work properly. - Referrals support. One of these things which have been on my to-do list for a long time. TCM now will enable referrals support when an appropriate map is being fed into 'lba_map'. Format there is: <segment size> <segment multiplier> <start lba> <end lba> <pgX:stateY> ... <pgN:stateM> ... <pgX> is the number of the first target port group, <stateY> is a character denominating the ALUA access state: 'O' for 'Active/Optimized', 'A' for 'Active/Non-Optimized', 'S' for 'Standby', and 'U' for 'Unavailable'. For further details see SBC-3, Section 'Referrals'. Yes, I know, it's far from perfect and violates the 'one item per attribute' rule. But breaking this down into several attributes and ensure the update is done consistently _and_ atomically is beyond my configfs skills. So there. - Minor fixes, spell checking etc. Hannes Reinecke (13): target core: rename (ex,im)plict -> (ex,im)plicit target_core_alua: Store supported ALUA states target_core_alua: Make supported states configurable target_core_alua: Rename ALUA_ACCESS_STATE_OPTIMIZED target_core_alua: spellcheck target_core_alua: Validate ALUA state transition target_core_alua: Allocate ALUA metadata on demand target_core_alua: store old and pending ALUA state target_core_alua: Use workqueue for ALUA transitioning target_core_alua: Referrals infrastructure target_core_alua: Referrals configfs integration target_core_spc: Fixup VPD page support tcm_loop: Check for valid hba in tcm_loop_drop_nexus() drivers/target/loopback/tcm_loop.c | 5 +- drivers/target/target_core_alua.c | 700 ++++++++++++++++++++++++--------- drivers/target/target_core_alua.h | 48 ++- drivers/target/target_core_configfs.c | 247 +++++++++++- drivers/target/target_core_device.c | 9 +- drivers/target/target_core_file.c | 2 +- drivers/target/target_core_pr.c | 24 +- drivers/target/target_core_sbc.c | 5 +- drivers/target/target_core_spc.c | 56 ++- drivers/target/target_core_transport.c | 32 +- drivers/target/target_core_ua.h | 2 +- include/scsi/scsi.h | 1 + include/target/target_core_base.h | 32 +- 13 files changed, 926 insertions(+), 237 deletions(-) -- 1.7.12.4 -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html