> + rcu_read_lock(); > + deve = target_nacl_find_deve(nacl, unpacked_lun); > + if (deve && deve->lun_flags & TRANSPORT_LUNFLAGS_INITIATOR_ACCESS) { > + /* > + * Make sure that target_enable_device_list_for_node() > + * has not already cleared the RCU protected pointers. > + */ > + if (!deve->se_lun) { Just move the hlist_del_rcu in core_disable_device_list_for_node before clearing se_lun and this check won't be needed. And if you need ny check here just add it to the if so that there is no need for the goto. Same for the TMR path. As for the locking changes: I'd rather have the change to a mutex as a separate patch as that's different from the data structure changes. -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html