On Sat,  7 Apr 2018 11:30:22 -0700
James Smart <jsmart2...@gmail.com> wrote:

> On tests adding and removing a remote port, calls to nvme_info would
> eventually show fewer target ports discovered than were present in
> the san. Additionally, the following error messages were seen:
>   6031 RemotePort Registration failed err: -116, DID x471301
> 
> There is a race condition that exists between the driver and the nvme
> transport on remote port unregister vs the confirmed deletion. It's
> possible that the driver may rediscover the remote port and reregister
> the remote port before a prior unregister delete callback was made
> (as it rebinded to the prior remoteport structure). However, the
> driver was coded to expect the callback before seeing the remote
> port again thus a new registration. The logic results in the driver
> having an invalid remoteport pointer set.
> 
> Correct by tracking when waiting for the delete callback. In cases
> where the ndlp remoteport pointer is updated, it is only cleared
> when the wait has not been superceded by a prior registration.
> 
> Signed-off-by: Dick Kennedy <dick.kenn...@broadcom.com>
> Signed-off-by: James Smart <james.sm...@broadcom.com>
> ---
>  drivers/scsi/lpfc/lpfc_nvme.c | 16 ++++++++++++++--
>  1 file changed, 14 insertions(+), 2 deletions(-)
> 
Reviewed-by: Hannes Reinecke <h...@suse.com>

Cheers,

Hannes

Reply via email to