Re: [PATCH] ubifs: tnc: use monotonic znode timestamp

From: Richard Weinberger
Date: Mon Jul 02 2018 - 10:24:36 EST


Arnd,

Am Mittwoch, 20. Juni 2018, 10:29:11 CEST schrieb Arnd Bergmann:
> The tnc uses get_seconds() based timestamps to check the age of a znode,
> which has two problems: on 32-bit architectures this may overflow in
> 2038 or 2106, and it gives incorrect information when the system time
> is updated using settimeofday().
>
> Using montonic timestamps with ktime_get_seconds() solves both thes
> problems.
>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> fs/ubifs/shrinker.c | 2 +-
> fs/ubifs/tnc.c | 4 ++--
> fs/ubifs/tnc_misc.c | 2 +-
> fs/ubifs/ubifs.h | 2 +-
> 4 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/fs/ubifs/shrinker.c b/fs/ubifs/shrinker.c
> index 9a9fb94a41c6..9d10cbdec2cc 100644
> --- a/fs/ubifs/shrinker.c
> +++ b/fs/ubifs/shrinker.c
> @@ -71,7 +71,7 @@ static int shrink_tnc(struct ubifs_info *c, int nr, int age, int *contention)
> {
> int total_freed = 0;
> struct ubifs_znode *znode, *zprev;
> - int time = get_seconds();
> + time64_t time = ktime_get_seconds();

ubifs does
abs(time - znode->time) >= age) {

Is this still legit with time64_t?

Thanks,
//richard