diff options
author | Hannes Reinecke <hare@suse.de> | 2018-07-11 10:09:29 +0200 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2018-07-13 05:01:16 +0200 |
commit | bbc0f8bd88abefb0f27998f40a073634a3a2db89 (patch) | |
tree | ce26338dc33a28ac9cfe4d99a386254adce4ff19 /drivers/scsi/libfc/fc_rport.c | |
parent | scsi: libfc: hold disc_mutex in fc_disc_stop_rports() (diff) | |
download | linux-bbc0f8bd88abefb0f27998f40a073634a3a2db89.tar.xz linux-bbc0f8bd88abefb0f27998f40a073634a3a2db89.zip |
scsi: libfc: Add WARN_ON() when deleting rports
The discovery rport list handling is quite odd; the list traversal is
independent from the lifetime of the rport itself. This makes auditing
quite tricky, and the chance remains that we've missed something. So this
patch adds a WARN_ON() statement when freeing an rport which is still part
of a list.
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>
Diffstat (limited to 'drivers/scsi/libfc/fc_rport.c')
-rw-r--r-- | drivers/scsi/libfc/fc_rport.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/libfc/fc_rport.c b/drivers/scsi/libfc/fc_rport.c index 3d51a936f6d5..d69531ab2db8 100644 --- a/drivers/scsi/libfc/fc_rport.c +++ b/drivers/scsi/libfc/fc_rport.c @@ -184,6 +184,7 @@ void fc_rport_destroy(struct kref *kref) struct fc_rport_priv *rdata; rdata = container_of(kref, struct fc_rport_priv, kref); + WARN_ON(!list_empty(&rdata->peers)); kfree_rcu(rdata, rcu); } EXPORT_SYMBOL(fc_rport_destroy); |