Commit 23d9a046 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Greg Kroah-Hartman

staging/lustre: use 64-bit computation in s2dhms()

The s2dhms computes the day/hour/minute/second values from a time_t,
which stops working in 2038. This changes the code to take a time64_t
argument, and use div_u64_rem() to implement the first division.
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 1f4fc343
...@@ -359,10 +359,12 @@ struct obd_histogram; ...@@ -359,10 +359,12 @@ struct obd_histogram;
struct dhms { struct dhms {
int d, h, m, s; int d, h, m, s;
}; };
static inline void s2dhms(struct dhms *ts, time_t secs)
static inline void s2dhms(struct dhms *ts, time64_t secs64)
{ {
ts->d = secs / 86400; unsigned int secs;
secs = secs % 86400;
ts->d = div_u64_rem(secs64, 86400, &secs);
ts->h = secs / 3600; ts->h = secs / 3600;
secs = secs % 3600; secs = secs % 3600;
ts->m = secs / 60; ts->m = secs / 60;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment