[lustre-devel] [PATCH 20/22] lnet: change lnet_notify() to take struct lnet_nid
James Simmons
jsimmons at infradead.org
Sun Nov 20 06:17:06 PST 2022
From: Mr NeilBrown <neilb at suse.de>
lnet_notify() now takes a 'struct lnet_nid *' instead of a
lnet_nid_t.
WC-bug-id: https://jira.whamcloud.com/browse/LU-10391
Lustre-commit: 4a88236f40a47c05d ("LU-10391 lnet: change lnet_notify() to take struct lnet_nid")
Signed-off-by: Mr NeilBrown <neilb at suse.de>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/44633
Reviewed-by: Chris Horn <chris.horn at hpe.com>
Reviewed-by: Serguei Smirnov <ssmirnov at whamcloud.com>
Reviewed-by: Frank Sehr <fsehr at whamcloud.com>
Reviewed-by: James Simmons <jsimmons at infradead.org>
Reviewed-by: Oleg Drokin <green at whamcloud.com>
Signed-off-by: James Simmons <jsimmons at infradead.org>
---
include/linux/lnet/lib-lnet.h | 4 ++--
net/lnet/klnds/o2iblnd/o2iblnd_cb.c | 10 +++++++---
net/lnet/klnds/socklnd/socklnd.c | 2 +-
net/lnet/lnet/api-ni.c | 3 ++-
net/lnet/lnet/router.c | 15 +++++++--------
5 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/include/linux/lnet/lib-lnet.h b/include/linux/lnet/lib-lnet.h
index 7ce6cff..3bcea11 100644
--- a/include/linux/lnet/lib-lnet.h
+++ b/include/linux/lnet/lib-lnet.h
@@ -574,8 +574,8 @@ unsigned int lnet_nid_cpt_hash(struct lnet_nid *nid,
void lnet_mt_event_handler(struct lnet_event *event);
-int lnet_notify(struct lnet_ni *ni, lnet_nid_t peer, bool alive, bool reset,
- time64_t when);
+int lnet_notify(struct lnet_ni *ni, struct lnet_nid *peer, bool alive,
+ bool reset, time64_t when);
void lnet_notify_locked(struct lnet_peer_ni *lp, int notifylnd, int alive,
time64_t when);
int lnet_add_route(u32 net, u32 hops, struct lnet_nid *gateway,
diff --git a/net/lnet/klnds/o2iblnd/o2iblnd_cb.c b/net/lnet/klnds/o2iblnd/o2iblnd_cb.c
index d4de326..451363b 100644
--- a/net/lnet/klnds/o2iblnd/o2iblnd_cb.c
+++ b/net/lnet/klnds/o2iblnd/o2iblnd_cb.c
@@ -1967,9 +1967,13 @@ static int kiblnd_map_tx(struct lnet_ni *ni, struct kib_tx *tx,
read_unlock_irqrestore(&kiblnd_data.kib_global_lock, flags);
- if (error)
- lnet_notify(peer_ni->ibp_ni,
- peer_ni->ibp_nid, false, false, last_alive);
+ if (error != 0) {
+ struct lnet_nid nid;
+
+ lnet_nid4_to_nid(peer_ni->ibp_nid, &nid);
+ lnet_notify(peer_ni->ibp_ni, &nid,
+ false, false, last_alive);
+ }
}
void
diff --git a/net/lnet/klnds/socklnd/socklnd.c b/net/lnet/klnds/socklnd/socklnd.c
index 21fccfa..d8d1071 100644
--- a/net/lnet/klnds/socklnd/socklnd.c
+++ b/net/lnet/klnds/socklnd/socklnd.c
@@ -1424,7 +1424,7 @@ struct ksock_peer_ni *
if (notify)
lnet_notify(peer_ni->ksnp_ni,
- lnet_nid_to_nid4(&peer_ni->ksnp_id.nid),
+ &peer_ni->ksnp_id.nid,
false, false, last_alive);
}
diff --git a/net/lnet/lnet/api-ni.c b/net/lnet/lnet/api-ni.c
index 8b53adf..5be2aff 100644
--- a/net/lnet/lnet/api-ni.c
+++ b/net/lnet/lnet/api-ni.c
@@ -4372,7 +4372,8 @@ u32 lnet_get_dlc_seq_locked(void)
* that deadline to the wall clock.
*/
deadline += ktime_get_seconds();
- return lnet_notify(NULL, data->ioc_nid, data->ioc_flags, false,
+ lnet_nid4_to_nid(data->ioc_nid, &nid);
+ return lnet_notify(NULL, &nid, data->ioc_flags, false,
deadline);
}
diff --git a/net/lnet/lnet/router.c b/net/lnet/lnet/router.c
index ee4f1d8..358c3f1 100644
--- a/net/lnet/lnet/router.c
+++ b/net/lnet/lnet/router.c
@@ -1672,26 +1672,25 @@ bool lnet_router_checker_active(void)
* when: notificaiton time.
*/
int
-lnet_notify(struct lnet_ni *ni, lnet_nid_t nid4, bool alive, bool reset,
+lnet_notify(struct lnet_ni *ni, struct lnet_nid *nid, bool alive, bool reset,
time64_t when)
{
struct lnet_peer_ni *lpni = NULL;
struct lnet_route *route;
struct lnet_peer *lp;
time64_t now = ktime_get_seconds();
- struct lnet_nid nid;
int cpt;
LASSERT(!in_interrupt());
CDEBUG(D_NET, "%s notifying %s: %s\n",
!ni ? "userspace" : libcfs_nidstr(&ni->ni_nid),
- libcfs_nidstr(&nid), alive ? "up" : "down");
+ libcfs_nidstr(nid), alive ? "up" : "down");
if (ni &&
- LNET_NID_NET(&ni->ni_nid) != LNET_NID_NET(&nid)) {
+ LNET_NID_NET(&ni->ni_nid) != LNET_NID_NET(nid)) {
CWARN("Ignoring notification of %s %s by %s (different net)\n",
- libcfs_nidstr(&nid), alive ? "birth" : "death",
+ libcfs_nidstr(nid), alive ? "birth" : "death",
libcfs_nidstr(&ni->ni_nid));
return -EINVAL;
}
@@ -1700,7 +1699,7 @@ bool lnet_router_checker_active(void)
if (when > now) {
CWARN("Ignoring prediction from %s of %s %s %lld seconds in the future\n",
ni ? libcfs_nidstr(&ni->ni_nid) : "userspace",
- libcfs_nidstr(&nid), alive ? "up" : "down", when - now);
+ libcfs_nidstr(nid), alive ? "up" : "down", when - now);
return -EINVAL;
}
@@ -1718,11 +1717,11 @@ bool lnet_router_checker_active(void)
return -ESHUTDOWN;
}
- lpni = lnet_peer_ni_find_locked(&nid);
+ lpni = lnet_peer_ni_find_locked(nid);
if (!lpni) {
/* nid not found */
lnet_net_unlock(0);
- CDEBUG(D_NET, "%s not found\n", libcfs_nidstr(&nid));
+ CDEBUG(D_NET, "%s not found\n", libcfs_nidstr(nid));
return 0;
}
--
1.8.3.1
More information about the lustre-devel
mailing list