All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: y2038@lists.linaro.org
Cc: Deepa Dinamani <deepa.kernel@gmail.com>,
	linux-fsdevel@vger.kernel.org, "Theodore Ts'o" <tytso@mit.edu>,
	Dave Chinner <david@fromorbit.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [Y2038] [PATCH 00/10] Remove CURRENT_TIME and CURRENT_TIME_SEC - PART 1
Date: Wed, 03 Feb 2016 22:30:44 +0100	[thread overview]
Message-ID: <4775421.bkqoN6rOXc@wuerfel> (raw)
In-Reply-To: <1454479670-8204-1-git-send-email-deepa.kernel@gmail.com>

On Tuesday 02 February 2016 22:07:40 Deepa Dinamani wrote:
> This patch series is aimed at getting rid of CURRENT_TIME and CURRENT_TIME_SEC
> macros.
> 
> The idea for the series evolved from my discussions with Arnd Bergmann.
> 
> This was originally part of the RFC series[2]:
> https://lkml.org/lkml/2016/1/7/20 (under discussion).
> 
> Dave Chinner suggested moving bug fixes out of the feature series to keep the
> original series simple.
> 
> There are 354 occurrences of the the above macros in the kernel.
> The series will be divided into 4 or 5 parts to keep the parts manageable
> and so that each part could be reviewed and merged independently.
> This is part 1 of the series. 

Looks very nice to me.

> Motivation
> 
> The macros: CURRENT_TIME and CURRENT_TIME_SEC are primarily used for
> filesystem timestamps.
> But, they are not accurate as they do not perform clamping according to
> filesystem timestamps ranges, nor do they truncate the nanoseconds value
> to the granularity as required by the filesystem.
> 
> The series is also viewed as an ancillary to another upcoming series[2]
> that attempts to transition file system timestamps to use 64 bit time to
> make these y2038 safe.
> 
> There will also be another series[3] to add range checks and clamping to
> filesystem time functions that are meant to substitute the above macros.
> 
> Solution
> 
> CURRENT_TIME macro has an equivalent function:
> 
> struct timespec current_fs_time(struct super_block *sb)
> 
> These will be the changes to the above function:
> 1. Function will return the type y2038 safe timespec64 in [2].
> 2. Function will use y2038 safe 64 bit functions in [2].
> 3. Function will be extended to perform range checks in [3].

I guess [2] and [3] are really independent of one another
and can be done in either order, correct?

[2] will help to make 32-bit kernels work correctly on file systems
that already support 64-bit timestamps internally, while [3] helps
sanitize the behavior of file systems that cannot support that
and that otherwise behave in unexpected ways on both 32-bit and
64-bit architectures.

	Arnd

  parent reply	other threads:[~2016-02-03 21:30 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-03  6:07 [PATCH 00/10] Remove CURRENT_TIME and CURRENT_TIME_SEC - PART 1 Deepa Dinamani
2016-02-03  6:07 ` [PATCH 01/10] fs: Add current_fs_time_sec() function Deepa Dinamani
2016-02-03  6:07 ` [PATCH 02/10] vfs: Replace CURRENT_TIME by current_fs_time() Deepa Dinamani
2016-02-03  6:07 ` [PATCH 03/10] fs: cifs: Replace CURRENT_TIME with current_fs_time() Deepa Dinamani
2016-02-03  6:07 ` [PATCH 04/10] fs: cifs: Replace CURRENT_TIME with ktime_get_real_ts() Deepa Dinamani
2016-02-03  6:07   ` Deepa Dinamani
2016-02-03  6:07 ` [PATCH 05/10] fs: cifs: Replace CURRENT_TIME by get_seconds Deepa Dinamani
2016-02-03  6:07 ` [PATCH 06/10] fs: ext4: Replace CURRENT_TIME_SEC with current_fs_time_sec() Deepa Dinamani
2016-02-03  6:07 ` [PATCH 07/10] fs: ext4: Replace CURRENT_TIME with ext4_current_time() Deepa Dinamani
2016-02-03  6:07 ` [PATCH 08/10] fs: ceph: replace CURRENT_TIME by current_fs_time() Deepa Dinamani
2016-02-03  6:22   ` Yan, Zheng
2016-02-03  6:22     ` Yan, Zheng
2016-02-03  6:07 ` [PATCH 09/10] fs: ceph: Replace CURRENT_TIME by ktime_get_real_ts() Deepa Dinamani
2016-02-03  6:07   ` Deepa Dinamani
2016-02-03 14:34   ` Yan, Zheng
2016-02-03 14:58     ` Ilya Dryomov
2016-02-03 16:17     ` Deepa Dinamani
2016-02-03 21:27       ` Arnd Bergmann
2016-02-04  2:00         ` Yan, Zheng
2016-02-04  2:00           ` Yan, Zheng
2016-02-04  8:30           ` Arnd Bergmann
2016-02-04  9:01             ` Ilya Dryomov
2016-02-04 13:31               ` Arnd Bergmann
2016-02-04 15:26                 ` Gregory Farnum
2016-02-04 21:02                   ` [Y2038] " Arnd Bergmann
2016-02-04 21:02                     ` Arnd Bergmann
2016-02-03  6:07 ` [PATCH 10/10] fs: btrfs: Replace CURRENT_TIME by current_fs_time() Deepa Dinamani
2016-02-04 14:14   ` David Sterba
2016-02-05 11:39     ` Deepa Dinamani
2016-02-07  7:57       ` [PATCH v2 " Deepa Dinamani
2016-02-08 15:08         ` David Sterba
2016-02-03 21:30 ` Arnd Bergmann [this message]
2016-02-04  4:56   ` [Y2038] [PATCH 00/10] Remove CURRENT_TIME and CURRENT_TIME_SEC - PART 1 Deepa Dinamani

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4775421.bkqoN6rOXc@wuerfel \
    --to=arnd@arndb.de \
    --cc=david@fromorbit.com \
    --cc=deepa.kernel@gmail.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tytso@mit.edu \
    --cc=y2038@lists.linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.