linux-fsdevel.vger.kernel.org archive mirror
 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: 27+ 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 ` [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:07 ` [PATCH 09/10] fs: ceph: Replace CURRENT_TIME by ktime_get_real_ts() Deepa Dinamani
2016-02-03 14:34   ` Yan, Zheng
2016-02-03 16:17     ` Deepa Dinamani
2016-02-03 21:27       ` Arnd Bergmann
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-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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).