Whamcloud - gitweb
LU-10391 lnet: change ni_status in lnet_ni to u32* 26/44626/7
authorMr NeilBrown <neilb@suse.de>
Mon, 28 Jun 2021 05:29:38 +0000 (15:29 +1000)
committerOleg Drokin <green@whamcloud.com>
Thu, 1 Sep 2022 05:52:30 +0000 (05:52 +0000)
struct lnet_ni.ni_status points to a 'struct lnet_ni_status', but only
the ns_status field of that structure is ever accessed.

Change ni_status to point directly to just the ns_status field.
This will provide flexibility for introducing a variant for 'struct
lnet_ni_status' which holds a large-address nid.

Test-Parameters: trivial testlist=sanity-lnet
Test-Parameters: serverversion=2.12 serverdistro=el7.9 testlist=runtests
Test-Parameters: clientversion=2.12 testlist=runtests
Signed-off-by: Mr NeilBrown <neilb@suse.de>
Change-Id: I5570608e98bc2aa1156b8d885df2a56f8ae7b6f7
Reviewed-on: https://review.whamcloud.com/44626
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Tested-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Chris Horn <chris.horn@hpe.com>
Reviewed-by: Serguei Smirnov <ssmirnov@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lnet/include/lnet/lib-lnet.h
lnet/include/lnet/lib-types.h
lnet/lnet/api-ni.c
lnet/lnet/router.c

index aa3e10e..3fab690 100644 (file)
@@ -232,11 +232,11 @@ __must_hold(&ni->ni_lock)
 {
        bool update = false;
 
-       if (ni->ni_status && ni->ni_status->ns_status != status) {
+       if (ni->ni_status && *ni->ni_status != status) {
                CDEBUG(D_NET, "ni %s status changed from %#x to %#x\n",
                       libcfs_nidstr(&ni->ni_nid),
-                      ni->ni_status->ns_status, status);
-               ni->ni_status->ns_status = status;
+                      *ni->ni_status, status);
+               *ni->ni_status = status;
                update = true;
        }
 
@@ -252,7 +252,7 @@ __must_hold(&ni->ni_lock)
        else if (atomic_read(&ni->ni_fatal_error_on))
                return LNET_NI_STATUS_DOWN;
        else if (ni->ni_status)
-               return ni->ni_status->ns_status;
+               return *ni->ni_status;
        else
                return LNET_NI_STATUS_UP;
 }
index 131890f..1d95275 100644 (file)
@@ -492,7 +492,7 @@ struct lnet_ni {
        struct lnet_net         *ni_net;
 
        /* my health status */
-       struct lnet_ni_status   *ni_status;
+       u32                     *ni_status;
 
        /* NI FSM. Protected by lnet_ni_lock() */
        enum lnet_ni_state      ni_state;
index d8922cc..67e20b1 100644 (file)
@@ -2051,7 +2051,7 @@ lnet_ping_target_install_locked(struct lnet_ping_buffer *pbuf)
 
                        lnet_ni_lock(ni);
                        ns->ns_status = lnet_ni_get_status_locked(ni);
-                       ni->ni_status = ns;
+                       ni->ni_status = &ns->ns_status;
                        lnet_ni_unlock(ni);
 
                        i++;
index 28b64ff..6bbcd34 100644 (file)
@@ -1106,7 +1106,7 @@ check_ni_fatal:
                         */
                        if (atomic_read(&ni->ni_fatal_error_on) &&
                            ni->ni_status &&
-                           ni->ni_status->ns_status != LNET_NI_STATUS_DOWN &&
+                           *ni->ni_status != LNET_NI_STATUS_DOWN &&
                            lnet_ni_set_status(ni, LNET_NI_STATUS_DOWN))
                                push = true;
                }