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

staging/lustre: use 64-bit times for ptlrpc_sec



Here we use an unsigned long to store the timeout for gc,
which is probably safe until 2106, but this patch converts it
to use ktime_get_real_seconds() and time64_t for consistency.

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 986ef135
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -833,7 +833,7 @@ struct ptlrpc_sec {
	 */
	struct list_head		      ps_gc_list;
	unsigned long		      ps_gc_interval; /* in seconds */
	unsigned long		      ps_gc_next;     /* in seconds */
	time64_t		      ps_gc_next;     /* in seconds */
};

static inline int sec_is_reverse(struct ptlrpc_sec *sec)
+3 −3
Original line number Diff line number Diff line
@@ -69,7 +69,7 @@ void sptlrpc_gc_add_sec(struct ptlrpc_sec *sec)
	LASSERT(sec->ps_gc_interval > 0);
	LASSERT(list_empty(&sec->ps_gc_list));

	sec->ps_gc_next = get_seconds() + sec->ps_gc_interval;
	sec->ps_gc_next = ktime_get_real_seconds() + sec->ps_gc_interval;

	spin_lock(&sec_gc_list_lock);
	list_add_tail(&sec_gc_list, &sec->ps_gc_list);
@@ -154,11 +154,11 @@ static void sec_do_gc(struct ptlrpc_sec *sec)

	CDEBUG(D_SEC, "check on sec %p(%s)\n", sec, sec->ps_policy->sp_name);

	if (cfs_time_after(sec->ps_gc_next, get_seconds()))
	if (sec->ps_gc_next > ktime_get_real_seconds())
		return;

	sec->ps_policy->sp_cops->gc_ctx(sec);
	sec->ps_gc_next = get_seconds() + sec->ps_gc_interval;
	sec->ps_gc_next = ktime_get_real_seconds() + sec->ps_gc_interval;
}

static int sec_gc_main(void *arg)
+2 −2
Original line number Diff line number Diff line
@@ -98,9 +98,9 @@ static int sptlrpc_info_lprocfs_seq_show(struct seq_file *seq, void *v)
		   atomic_read(&sec->ps_refcount));
	seq_printf(seq, "nctx:	  %d\n", atomic_read(&sec->ps_nctx));
	seq_printf(seq, "gc internal    %ld\n", sec->ps_gc_interval);
	seq_printf(seq, "gc next	%ld\n",
	seq_printf(seq, "gc next	%lld\n",
		   sec->ps_gc_interval ?
		   sec->ps_gc_next - get_seconds() : 0);
		   (s64)(sec->ps_gc_next - ktime_get_real_seconds()) : 0ll);

	sptlrpc_sec_put(sec);
out: