Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

target: Send UA on ALUA target port group change

When the ALUA target port group changes an INQUIRY DATA CHANGE
UA needs to be sent.

Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>

authored by

Hannes Reinecke and committed by
Nicholas Bellinger
3dd348fc 1adff1b3

+9
+7
drivers/target/target_core_alua.c
··· 1880 1880 static void __target_attach_tg_pt_gp(struct se_lun *lun, 1881 1881 struct t10_alua_tg_pt_gp *tg_pt_gp) 1882 1882 { 1883 + struct se_dev_entry *se_deve; 1884 + 1883 1885 assert_spin_locked(&lun->lun_tg_pt_gp_lock); 1884 1886 1885 1887 spin_lock(&tg_pt_gp->tg_pt_gp_lock); 1886 1888 lun->lun_tg_pt_gp = tg_pt_gp; 1887 1889 list_add_tail(&lun->lun_tg_pt_gp_link, &tg_pt_gp->tg_pt_gp_lun_list); 1888 1890 tg_pt_gp->tg_pt_gp_members++; 1891 + spin_lock(&lun->lun_deve_lock); 1892 + list_for_each_entry(se_deve, &lun->lun_deve_list, lun_link) 1893 + core_scsi3_ua_allocate(se_deve, 0x3f, 1894 + ASCQ_3FH_INQUIRY_DATA_HAS_CHANGED); 1895 + spin_unlock(&lun->lun_deve_lock); 1889 1896 spin_unlock(&tg_pt_gp->tg_pt_gp_lock); 1890 1897 } 1891 1898
+2
drivers/target/target_core_ua.h
··· 25 25 26 26 #define ASCQ_2CH_PREVIOUS_RESERVATION_CONFLICT_STATUS 0x09 27 27 28 + #define ASCQ_3FH_INQUIRY_DATA_HAS_CHANGED 0x03 29 + 28 30 extern struct kmem_cache *se_ua_cache; 29 31 30 32 extern sense_reason_t target_scsi3_ua_check(struct se_cmd *);