• James Smart's avatar
    [SCSI] fc transport: bug fix: correct references · 3bdad7bd
    James Smart authored
    Original post was incorrect as it didn't realize that we already had
    a self-referenc due to device_initialize(), and we were really only
    missing the put on our own reference. This was hidden by the other bug
    which had the midlayer reusing stargets after they were already free,
    which was doing too many puts on our rport.
    Updating FC transport for:
    - Add put in fc_rport_final_delete(), to release the rport.
      Prior, we were leaving the rport with a reference, thus the shost
      with references, etc. If the driver was unloaded, shosts and rports
      remained, along with work threads, etc
    - Fix fc_rport_create failure path - too many put's on parent
    - Add commenting to easily track ref taking.
    Signed-off-by: default avatarJames Smart <james.smart@emulex.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
scsi_transport_fc.c 63.2 KB