Re: [PATCH 4/6] target: Send UA on ALUA target port group change

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/19/2015 03:05 PM, Christoph Hellwig wrote:
>> --- a/drivers/target/target_core_alua.c
>> +++ b/drivers/target/target_core_alua.c
>> @@ -1880,12 +1880,19 @@ static void core_alua_put_tg_pt_gp_from_name(
>>  static void __target_attach_tg_pt_gp(struct se_lun *lun,
>>  		struct t10_alua_tg_pt_gp *tg_pt_gp)
>>  {
>> +	struct se_dev_entry *se_deve;
>> +
>>  	assert_spin_locked(&lun->lun_tg_pt_gp_lock);
>>  
>>  	spin_lock(&tg_pt_gp->tg_pt_gp_lock);
>>  	lun->lun_tg_pt_gp = tg_pt_gp;
>>  	list_add_tail(&lun->lun_tg_pt_gp_link, &tg_pt_gp->tg_pt_gp_lun_list);
>>  	tg_pt_gp->tg_pt_gp_members++;
>> +	spin_lock_bh(&lun->lun_deve_lock);
>> +	list_for_each_entry(se_deve, &lun->lun_deve_list, lun_link)
>> +		core_scsi3_ua_allocate(se_deve, 0x3f,
>> +				       ASCQ_3FH_INQUIRY_DATA_HAS_CHANGED);
>> +	spin_unlock_bh(&lun->lun_deve_lock);
>>  	spin_unlock(&tg_pt_gp->tg_pt_gp_lock);
> 
> Taking a _bh lock inside a regular spinlock is completely broken.
> 
> Fortunately I don't think lun_deve_lock needs to disable bottom halves,
> but this needs to be fixed first.
> 
This harks back to my previous mail:
Under which circumstances will there be more than one se_dev_entry
structures in lun_deve_list?
Isn't there a 1:1 relationship?

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		               zSeries & Storage
hare@xxxxxxx			               +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux