Whamcloud - gitweb
LU-9917 lnet: rediscover peer if it changed 72/28772/2
authorAmir Shehata <amir.shehata@intel.com>
Mon, 28 Aug 2017 22:22:57 +0000 (15:22 -0700)
committerOleg Drokin <oleg.drokin@intel.com>
Sun, 10 Sep 2017 04:55:41 +0000 (04:55 +0000)
If the peer has changed after we unlocked the cpt then
we'll need to discover the new peer.

Signed-off-by: Amir Shehata <amir.shehata@intel.com>
Change-Id: Ib880746d5e67bbea1aa43122fa3aa115261c8664
Reviewed-on: https://review.whamcloud.com/28772
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Olaf Weber <olaf.weber@hpe.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lnet/lnet/peer.c

index 232a06d..7865c71 100644 (file)
@@ -2035,6 +2035,14 @@ again:
        lnet_net_unlock(LNET_LOCK_EX);
        lnet_net_lock(cpt);
 
+       /*
+        * If the peer has changed after we've discovered the older peer,
+        * then we need to discovery the new peer to make sure the
+        * interface information is up to date
+        */
+       if (lp != lpni->lpni_peer_net->lpn_peer)
+               goto again;
+
        if (signal_pending(current))
                rc = -EINTR;
        else if (the_lnet.ln_dc_state != LNET_DC_STATE_RUNNING)