Commit ec0067d1 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Greg Kroah-Hartman
Browse files

staging/lustre: use 64-bit time for ni_last_alive



The ni_last_alive member of lnet_ni uses a 'long' to store a timestamp,
which breaks on 32-bit systems in 2038.

This changes it to use time64_t and the respective functions for it.

Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarOleg Drokin <green@linuxhacker.ru>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 74ad578f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -264,7 +264,7 @@ typedef struct lnet_ni {
	lnd_t			 *ni_lnd;	/* procedural interface */
	struct lnet_tx_queue	**ni_tx_queues;	/* percpt TX queues */
	int			**ni_refs;	/* percpt reference count */
	long			  ni_last_alive;/* when I was last alive */
	time64_t		  ni_last_alive;/* when I was last alive */
	lnet_ni_status_t	 *ni_status;	/* my health status */
	/* equivalent interfaces to use */
	char			 *ni_interfaces[LNET_MAX_INTERFACES];
+1 −1
Original line number Diff line number Diff line
@@ -166,7 +166,7 @@ lnet_ni_alloc(__u32 net, struct cfs_expr_list *el, struct list_head *nilist)

	/* LND will fill in the address part of the NID */
	ni->ni_nid = LNET_MKNID(net, 0);
	ni->ni_last_alive = get_seconds();
	ni->ni_last_alive = ktime_get_real_seconds();
	list_add_tail(&ni->ni_list, nilist);
	return ni;
 failed:
+2 −2
Original line number Diff line number Diff line
@@ -1768,11 +1768,11 @@ lnet_parse(lnet_ni_t *ni, lnet_hdr_t *hdr, lnet_nid_t from_nid,
	}

	if (the_lnet.ln_routing &&
	    ni->ni_last_alive != get_seconds()) {
	    ni->ni_last_alive != ktime_get_real_seconds()) {
		lnet_ni_lock(ni);

		/* NB: so far here is the only place to set NI status to "up */
		ni->ni_last_alive = get_seconds();
		ni->ni_last_alive = ktime_get_real_seconds();
		if (ni->ni_status != NULL &&
		    ni->ni_status->ns_status == LNET_NI_STATUS_DOWN)
			ni->ni_status->ns_status = LNET_NI_STATUS_UP;
+2 −2
Original line number Diff line number Diff line
@@ -789,7 +789,7 @@ static void
lnet_update_ni_status_locked(void)
{
	lnet_ni_t *ni;
	long now;
	time64_t now;
	int timeout;

	LASSERT(the_lnet.ln_routing);
@@ -797,7 +797,7 @@ lnet_update_ni_status_locked(void)
	timeout = router_ping_timeout +
		  max(live_router_check_interval, dead_router_check_interval);

	now = get_seconds();
	now = ktime_get_real_seconds();
	list_for_each_entry(ni, &the_lnet.ln_nis, ni_list) {
		if (ni->ni_lnd->lnd_type == LOLND)
			continue;
+1 −1
Original line number Diff line number Diff line
@@ -692,7 +692,7 @@ static int proc_lnet_nis(struct ctl_table *table, int write,
		if (ni != NULL) {
			struct lnet_tx_queue *tq;
			char *stat;
			long now = get_seconds();
			time64_t now = ktime_get_real_seconds();
			int last_alive = -1;
			int i;
			int j;