OSDN Git Service

scsi: fcoe: hold disc_mutex when traversing rport lists
authorHannes Reinecke <hare@suse.de>
Wed, 11 Jul 2018 08:09:30 +0000 (10:09 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 13 Jul 2018 03:01:16 +0000 (23:01 -0400)
commit0993ed922a3e62a66fcad41633985b127ecf71b0
treeb6fb21f3f5c4737e690eb47d3677a8b41801a8f7
parentbbc0f8bd88abefb0f27998f40a073634a3a2db89
scsi: fcoe: hold disc_mutex when traversing rport lists

When calling either fc_rport_logon() or fc_rport_logoff() during rport list
traversal we cannot use the RCU list traversal, as either of these
functions will be taking a mutex.  So we need to partially revert commit
a407c593398c to take the disc mutex during traversal.  We should, however,
continue to use krefs to ensure that the rport object will not be freed
from under us.

Fixes: a407c593398c ("scsi: libfc: Fixup disc_mutex handling")
Signed-off-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/fcoe/fcoe_ctlr.c