]> www.infradead.org Git - users/jedix/linux-maple.git/commit
scsi: libfc: Fixup disc_mutex handling in fcoe module
authorHannes Reinecke <hare@suse.de>
Fri, 30 Sep 2016 09:01:15 +0000 (11:01 +0200)
committerBrian Maly <brian.maly@oracle.com>
Tue, 25 Jun 2019 20:19:33 +0000 (16:19 -0400)
commit480ab2ff6c79b653f15664cd8f890bf6fdbbb41f
treebf12cc2d998adeba888551fe44e7a25cff7c3cde
parent3e85ff6cd3be8945c5ee3d00afa99c10eae64c50
scsi: libfc: Fixup disc_mutex handling in fcoe module

The list of attached 'rdata' remote port structures is RCU
protected, so there is no need to take the 'disc_mutex' when
traversing it.
Rather we should be using rcu_read_lock() and kref_get_unless_zero()
to validate the entries.
We need, however, take the disc_mutex when deleting an entry;
otherwise we risk clashes with list_add.

Signed-off-by: Hannes Reinecke <hare@suse.com>
Acked-by: Johannes Thumshirn <jth@kernel.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Orabug: 29511036

(cherry picked from commit a407c593398c886db4fa1fc5c6fec55e61187a09)
Signed-off-by: Rajan Shanmugavelu <rajan.shanmugavelu@oracle.com>
Reviewed-by: Joe Jin <joe.jin@oracle.com>
Signed-off-by: Brian Maly <brian.maly@oracle.com>
drivers/scsi/fcoe/fcoe_ctlr.c
drivers/scsi/libfc/fc_disc.c
drivers/scsi/libfc/fc_lport.c