All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
	joseph@codesourcery.com, john.stultz@linaro.org,
	hch@infradead.org, tglx@linutronix.de, geert@linux-m68k.org,
	lftan@altera.com, linux-fsdevel@vger.kernel.org,
	Jan Kara <jack@suse.cz>,
	Andrew Morton <akpm@linux-foundation.org>,
	Andreas Dilger <adilger.kernel@dilger.ca>,
	linux-ext4@vger.kernel.org
Subject: Re: [RFC 13/32] ext3: convert to struct inode_time
Date: Sat, 31 May 2014 16:32:58 +0200	[thread overview]
Message-ID: <6394184.hHtXJE2Bp6@wuerfel> (raw)
In-Reply-To: <53899C95.80806@zytor.com>

On Saturday 31 May 2014 02:10:45 H. Peter Anvin wrote:
> On 05/30/2014 01:01 PM, Arnd Bergmann wrote:
> > ext3fs uses unsigned 32-bit seconds for inode timestamps, which will work
> > for the next 92 years, but the VFS uses struct timespec for timestamps,
> > which is only good until 2038 on 32-bit CPUs.
> > 
> > This gets us one small step closer to lifting the VFS limit by using
> > struct inode_time in ext3. The on-disk format limit is lifted in ext4,
> > which will work until 2514.
> > 
> 
> This may be what the spec says, but when I experimented with this just
> now it does seem that both ext2 and ext3 actually interpret timestamps
> as *signed* 32-bit seconds.

Right, I can see that in ext3_iget() now:

        inode->i_atime.tv_sec = (signed)le32_to_cpu(raw_inode->i_atime);

I may have just looked at ext3_do_update_inode(), which uses this
unsigned conversion:

	raw_inode->i_ctime = cpu_to_le32(inode->i_ctime.tv_sec);

and didn't realize that this is only half of the story, and since it
converts from (potentially 64-bit) long to u32, it doesn't matter
whether that is signed or unsigned.

I may have to go through all of them again to see if I made the same
mistake in other file systems as well.

	Arnd

  reply	other threads:[~2014-05-31 14:33 UTC|newest]

Thread overview: 313+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-30 20:01 [RFC 00/32] making inode time stamps y2038 ready Arnd Bergmann
2014-05-30 20:01 ` [Cluster-devel] " Arnd Bergmann
2014-05-30 20:01 ` Arnd Bergmann
2014-05-30 20:01 ` [Ocfs2-devel] " Arnd Bergmann
2014-05-30 20:01 ` Arnd Bergmann
2014-05-30 20:01 ` Arnd Bergmann
2014-05-30 20:01 ` [RFC 01/32] fs: introduce new 'struct inode_time' Arnd Bergmann
2014-05-31  7:56   ` Geert Uytterhoeven
2014-05-31  8:39     ` Andreas Schwab
2014-05-31  8:39       ` Andreas Schwab
2014-05-31 13:19       ` Geert Uytterhoeven
2014-05-31 13:46         ` Andreas Schwab
2014-05-31 13:46           ` Andreas Schwab
2014-05-31 14:54       ` Arnd Bergmann
2014-05-31 16:15         ` Geert Uytterhoeven
2014-05-31  9:03   ` H. Peter Anvin
2014-05-31 14:53     ` Arnd Bergmann
2014-05-31 14:55       ` H. Peter Anvin
2014-05-30 20:01 ` [RFC 02/32] uapi: add struct __kernel_timespec{32,64} Arnd Bergmann
2014-05-30 20:18   ` H. Peter Anvin
2014-05-31 15:09     ` Arnd Bergmann
2014-05-30 20:01 ` [RFC 03/32] fs: introduce sys_utimens64at Arnd Bergmann
2014-05-31  9:22   ` Andreas Schwab
2014-05-31 14:55     ` Arnd Bergmann
2014-05-30 20:01 ` [RFC 04/32] fs: introduce sys_newfstat64/sys_newfstatat64 Arnd Bergmann
2014-05-30 20:01 ` [RFC 05/32] arch: hook up new stat and utimes syscalls Arnd Bergmann
2014-05-30 20:01 ` [RFC 06/32] isofs: fix timestamps beyond 2027 Arnd Bergmann
2014-05-31  7:59   ` Geert Uytterhoeven
2014-05-31  8:47     ` H. Peter Anvin
2014-05-30 20:01 ` [RFC 07/32] fs/nfs: convert to struct inode_time Arnd Bergmann
2014-05-30 20:01 ` [RFC 08/32] fs/ceph: convert to 'struct inode_time' Arnd Bergmann
2014-05-30 20:01 ` [RFC 09/32] fs/pstore: convert to struct inode_time Arnd Bergmann
2014-05-30 21:14   ` Kees Cook
2014-05-30 20:01 ` [RFC 10/32] fs/coda: " Arnd Bergmann
2014-05-30 20:01   ` Arnd Bergmann
2014-05-30 20:01 ` [RFC 11/32] xfs: " Arnd Bergmann
2014-05-30 20:01   ` Arnd Bergmann
2014-05-31  0:37   ` Dave Chinner
2014-05-31  0:37     ` Dave Chinner
2014-05-31  0:41     ` H. Peter Anvin
2014-05-31  0:41       ` H. Peter Anvin
2014-05-31  1:14       ` Dave Chinner
2014-05-31  1:14         ` Dave Chinner
2014-05-31  1:22         ` H. Peter Anvin
2014-05-31  1:22           ` H. Peter Anvin
2014-05-31  5:54           ` Dave Chinner
2014-05-31  5:54             ` Dave Chinner
2014-05-31  8:41             ` H. Peter Anvin
2014-05-31  8:41               ` H. Peter Anvin
2014-05-31 15:46               ` Nicolas Pitre
2014-05-31 15:46                 ` Nicolas Pitre
2014-06-01 19:56                 ` Arnd Bergmann
2014-06-01 19:56                   ` Arnd Bergmann
2014-06-01 20:26                   ` H. Peter Anvin
2014-06-01 20:26                     ` H. Peter Anvin
2014-06-02 11:02                     ` Arnd Bergmann
2014-06-02 11:02                       ` Arnd Bergmann
2014-06-02  1:36                   ` Nicolas Pitre
2014-06-02  1:36                     ` Nicolas Pitre
2014-06-02  2:22                     ` Dave Chinner
2014-06-02  2:22                       ` Dave Chinner
2014-06-02  7:09                       ` Geert Uytterhoeven
2014-06-02  7:09                         ` Geert Uytterhoeven
2014-06-02 10:56                     ` Arnd Bergmann
2014-06-02 10:56                       ` Arnd Bergmann
2014-06-02 11:57                       ` Theodore Ts'o
2014-06-02 11:57                         ` Theodore Ts'o
2014-06-02 12:38                         ` Arnd Bergmann
2014-06-02 12:38                           ` Arnd Bergmann
2014-06-02 13:15                           ` Theodore Ts'o
2014-06-02 13:15                             ` Theodore Ts'o
2014-06-02 12:52                         ` Arnd Bergmann
2014-06-02 12:52                           ` Arnd Bergmann
2014-06-02 13:07                           ` Theodore Ts'o
2014-06-02 13:07                             ` Theodore Ts'o
2014-06-02 15:01                             ` Arnd Bergmann
2014-06-02 15:01                               ` Arnd Bergmann
2014-06-02 14:52                         ` H. Peter Anvin
2014-06-02 14:52                           ` H. Peter Anvin
2014-06-02 15:04                       ` Chuck Lever
2014-06-02 15:04                         ` Chuck Lever
2014-06-02 15:31                         ` Theodore Ts'o
2014-06-02 15:31                           ` Theodore Ts'o
2014-06-02 17:12                           ` H. Peter Anvin
2014-06-02 17:12                             ` H. Peter Anvin
2014-06-02 18:50                             ` Arnd Bergmann
2014-06-02 18:50                               ` Arnd Bergmann
2014-06-02 22:29                             ` Theodore Ts'o
2014-06-02 22:29                               ` Theodore Ts'o
2014-06-02 22:32                               ` H. Peter Anvin
2014-06-02 22:32                                 ` H. Peter Anvin
2014-06-02 23:32                                 ` Theodore Ts'o
2014-06-02 23:32                                   ` Theodore Ts'o
2014-06-02 23:33                                   ` H. Peter Anvin
2014-06-02 23:33                                     ` H. Peter Anvin
2014-06-03 13:09                                   ` Roger Willcocks
2014-06-03 13:09                                     ` Roger Willcocks
2014-06-02 18:52                         ` Arnd Bergmann
2014-06-02 18:52                           ` Arnd Bergmann
2014-06-02 18:58                         ` Roger Willcocks
2014-06-02 18:58                           ` Roger Willcocks
2014-06-02 19:04                           ` Chuck Lever
2014-06-02 19:04                             ` Chuck Lever
2014-06-02 19:04                             ` Chuck Lever
2014-06-02 19:10                             ` Arnd Bergmann
2014-06-02 19:10                               ` Arnd Bergmann
2014-06-01  0:39               ` Dave Chinner
2014-06-01  0:39                 ` Dave Chinner
2014-06-02 14:00             ` Joseph S. Myers
2014-06-02 14:00               ` Joseph S. Myers
2014-06-02 14:00               ` Joseph S. Myers
2014-05-31 15:37         ` Arnd Bergmann
2014-05-31 15:37           ` Arnd Bergmann
2014-06-01  0:24           ` Dave Chinner
2014-06-01  0:24             ` Dave Chinner
2014-06-02  0:28             ` Dave Chinner
2014-06-02  0:28               ` Dave Chinner
2014-06-02 11:35               ` Roger Willcocks
2014-06-02 11:35                 ` Roger Willcocks
2014-06-02 11:43               ` Arnd Bergmann
2014-06-02 11:43                 ` Arnd Bergmann
2014-06-03  0:32                 ` Dave Chinner
2014-06-03  0:32                   ` Dave Chinner
2014-06-03  7:33                   ` Arnd Bergmann
2014-06-03  7:33                     ` Arnd Bergmann
2014-06-03  8:41                     ` Dave Chinner
2014-06-03  8:41                       ` Dave Chinner
2014-06-03  9:16                       ` Arnd Bergmann
2014-06-03  9:16                         ` Arnd Bergmann
2014-05-30 20:01 ` [RFC 12/32] btrfs: " Arnd Bergmann
2014-05-30 20:01 ` [RFC 13/32] ext3: " Arnd Bergmann
2014-05-31  9:10   ` H. Peter Anvin
2014-05-31 14:32     ` Arnd Bergmann [this message]
2014-05-30 20:01 ` [RFC 14/32] ext4: " Arnd Bergmann
2014-05-30 20:01 ` [RFC 15/32] cifs: " Arnd Bergmann
2014-05-30 20:01 ` [RFC 16/32] ntfs: " Arnd Bergmann
2014-05-30 20:01 ` [RFC 17/32] ubifs: " Arnd Bergmann
2014-05-30 20:01   ` Arnd Bergmann
2014-06-02  7:54   ` Artem Bityutskiy
2014-06-02  7:54     ` Artem Bityutskiy
2014-05-30 20:01 ` [RFC 18/32] ocfs2: " Arnd Bergmann
2014-05-30 20:01   ` [Ocfs2-devel] " Arnd Bergmann
2014-05-30 20:01 ` [RFC 19/32] fs/fat: " Arnd Bergmann
2014-05-30 20:01 ` [RFC 20/32] afs: " Arnd Bergmann
2014-05-30 20:01 ` [RFC 21/32] udf: " Arnd Bergmann
2014-05-30 20:01 ` [RFC 22/32] fs: convert simple fs to inode_time Arnd Bergmann
2014-05-30 23:06   ` Greg Kroah-Hartman
2014-05-30 20:01 ` [RFC 23/32] logfs: convert to struct inode_time Arnd Bergmann
2014-05-30 20:01 ` [RFC 24/32] hfs, hfsplus: " Arnd Bergmann
2014-05-31 14:23   ` Vyacheslav Dubeyko
2014-05-30 20:01 ` [RFC 25/32] gfs2: " Arnd Bergmann
2014-05-30 20:01   ` [Cluster-devel] " Arnd Bergmann
2014-06-02  9:52   ` Steven Whitehouse
2014-06-02  9:52     ` [Cluster-devel] " Steven Whitehouse
2014-05-30 20:01 ` [RFC 26/32] reiserfs: " Arnd Bergmann
2014-05-30 20:01 ` [RFC 27/32] jffs2: " Arnd Bergmann
2014-05-30 20:01   ` Arnd Bergmann
2014-05-30 20:01   ` Arnd Bergmann
2014-05-30 20:01 ` [RFC 28/32] adfs: " Arnd Bergmann
2014-05-30 20:01 ` [RFC 29/32] f2fs: " Arnd Bergmann
2014-05-30 20:01 ` [RFC 30/32] fuse: " Arnd Bergmann
2014-05-30 20:01 ` [RFC 31/32] scsi: fnic: use current_kernel_time() for timestamp Arnd Bergmann
2014-05-30 20:01 ` [RFC 32/32] fs: use new inode_time definition unconditionally Arnd Bergmann
2014-05-31 14:30 ` [RFC 00/32] making inode time stamps y2038 ready Vyacheslav Dubeyko
2014-05-31 14:30   ` [Cluster-devel] " Vyacheslav Dubeyko
2014-05-31 14:30   ` Vyacheslav Dubeyko
2014-05-31 14:30   ` [Ocfs2-devel] " Vyacheslav Dubeyko
2014-05-31 14:30   ` Vyacheslav Dubeyko
2014-05-31 14:30   ` Vyacheslav Dubeyko
2014-06-03 12:21   ` Arnd Bergmann
2014-06-03 12:21     ` [Cluster-devel] " Arnd Bergmann
2014-06-03 12:21     ` Arnd Bergmann
2014-06-03 12:21     ` [Ocfs2-devel] " Arnd Bergmann
2014-06-03 12:21     ` Arnd Bergmann
2014-06-03 12:21     ` Arnd Bergmann
2014-06-03 12:21     ` Arnd Bergmann
2014-05-31 14:51 ` Richard Cochran
2014-05-31 14:51   ` [Cluster-devel] " Richard Cochran
2014-05-31 14:51   ` Richard Cochran
2014-05-31 14:51   ` [Ocfs2-devel] " Richard Cochran
2014-05-31 14:51   ` Richard Cochran
2014-05-31 14:51   ` Richard Cochran
2014-05-31 15:23   ` Arnd Bergmann
2014-05-31 15:23     ` [Cluster-devel] " Arnd Bergmann
2014-05-31 15:23     ` Arnd Bergmann
2014-05-31 15:23     ` [Ocfs2-devel] " Arnd Bergmann
2014-05-31 15:23     ` Arnd Bergmann
2014-05-31 16:20     ` Geert Uytterhoeven
2014-05-31 16:20       ` [Cluster-devel] " Geert Uytterhoeven
2014-05-31 16:20       ` Geert Uytterhoeven
2014-05-31 16:20       ` [Ocfs2-devel] " Geert Uytterhoeven
2014-05-31 16:20       ` Geert Uytterhoeven
2014-05-31 18:22     ` Richard Cochran
2014-05-31 18:22       ` [Cluster-devel] " Richard Cochran
2014-05-31 18:22       ` Richard Cochran
2014-05-31 18:22       ` [Ocfs2-devel] " Richard Cochran
2014-05-31 18:22       ` Richard Cochran
2014-05-31 18:22       ` Richard Cochran
2014-05-31 18:22       ` Richard Cochran
2014-05-31 19:34       ` H. Peter Anvin
2014-05-31 19:34         ` [Cluster-devel] " H. Peter Anvin
2014-05-31 19:34         ` H. Peter Anvin
2014-05-31 19:34         ` [Ocfs2-devel] " H. Peter Anvin
2014-05-31 19:34         ` H. Peter Anvin
2014-06-01  4:46         ` Richard Cochran
2014-06-01  4:46           ` [Cluster-devel] " Richard Cochran
2014-06-01  4:46           ` Richard Cochran
2014-06-01  4:46           ` [Ocfs2-devel] " Richard Cochran
2014-06-01  4:46           ` Richard Cochran
2014-06-01  4:44     ` Richard Cochran
2014-06-01  4:44       ` [Cluster-devel] " Richard Cochran
2014-06-01  4:44       ` Richard Cochran
2014-06-01  4:44       ` [Ocfs2-devel] " Richard Cochran
2014-06-01  4:44       ` Richard Cochran
2014-06-01  4:44       ` Richard Cochran
2014-06-02 13:52 ` Joseph S. Myers
2014-06-02 13:52   ` [Cluster-devel] " Joseph S. Myers
2014-06-02 13:52   ` Joseph S. Myers
2014-06-02 13:52   ` [Ocfs2-devel] " Joseph S. Myers
2014-06-02 13:52   ` Joseph S. Myers
2014-06-02 13:52   ` Joseph S. Myers
2014-06-02 13:52   ` Joseph S. Myers
2014-06-02 19:19   ` Arnd Bergmann
2014-06-02 19:19     ` [Cluster-devel] " Arnd Bergmann
2014-06-02 19:19     ` Arnd Bergmann
2014-06-02 19:19     ` [Ocfs2-devel] " Arnd Bergmann
2014-06-02 19:19     ` Arnd Bergmann
2014-06-02 19:19     ` Arnd Bergmann
2014-06-02 19:19     ` Arnd Bergmann
2014-06-02 19:26     ` H. Peter Anvin
2014-06-02 19:26       ` [Cluster-devel] " H. Peter Anvin
2014-06-02 19:26       ` H. Peter Anvin
2014-06-02 19:26       ` [Ocfs2-devel] " H. Peter Anvin
2014-06-02 19:26       ` H. Peter Anvin
2014-06-02 19:26       ` H. Peter Anvin
2014-06-02 19:55       ` Arnd Bergmann
2014-06-02 19:55         ` [Cluster-devel] " Arnd Bergmann
2014-06-02 19:55         ` Arnd Bergmann
2014-06-02 19:55         ` [Ocfs2-devel] " Arnd Bergmann
2014-06-02 19:55         ` Arnd Bergmann
2014-06-02 21:57         ` H. Peter Anvin
2014-06-02 21:57           ` [Cluster-devel] " H. Peter Anvin
2014-06-02 21:57           ` H. Peter Anvin
2014-06-02 21:57           ` [Ocfs2-devel] " H. Peter Anvin
2014-06-02 21:57           ` H. Peter Anvin
2014-06-02 21:57           ` H. Peter Anvin
2014-06-03 14:22           ` Arnd Bergmann
2014-06-03 14:22             ` [Cluster-devel] " Arnd Bergmann
2014-06-03 14:22             ` Arnd Bergmann
2014-06-03 14:22             ` [Ocfs2-devel] " Arnd Bergmann
2014-06-03 14:22             ` Arnd Bergmann
2014-06-03 14:22             ` Arnd Bergmann
2014-06-03 14:33             ` Joseph S. Myers
2014-06-03 14:33               ` [Cluster-devel] " Joseph S. Myers
2014-06-03 14:33               ` Joseph S. Myers
2014-06-03 14:33               ` [Ocfs2-devel] " Joseph S. Myers
2014-06-03 14:33               ` Joseph S. Myers
2014-06-03 14:33               ` Joseph S. Myers
2014-06-03 14:37               ` Arnd Bergmann
2014-06-03 14:37                 ` [Cluster-devel] " Arnd Bergmann
2014-06-03 14:37                 ` Arnd Bergmann
2014-06-03 14:37                 ` [Ocfs2-devel] " Arnd Bergmann
2014-06-03 14:37                 ` Arnd Bergmann
2014-06-03 14:37                 ` Arnd Bergmann
2014-06-03 21:38             ` Dave Chinner
2014-06-03 21:38               ` [Cluster-devel] " Dave Chinner
2014-06-03 21:38               ` Dave Chinner
2014-06-03 21:38               ` [Ocfs2-devel] " Dave Chinner
2014-06-03 21:38               ` Dave Chinner
2014-06-03 21:38               ` Dave Chinner
2014-06-04 15:03               ` Arnd Bergmann
2014-06-04 15:03                 ` [Cluster-devel] " Arnd Bergmann
2014-06-04 15:03                 ` Arnd Bergmann
2014-06-04 15:03                 ` [Ocfs2-devel] " Arnd Bergmann
2014-06-04 15:03                 ` Arnd Bergmann
2014-06-04 15:03                 ` Arnd Bergmann
2014-06-04 17:30                 ` Nicolas Pitre
2014-06-04 17:30                   ` [Cluster-devel] " Nicolas Pitre
2014-06-04 17:30                   ` Nicolas Pitre
2014-06-04 17:30                   ` [Ocfs2-devel] " Nicolas Pitre
2014-06-04 17:30                   ` Nicolas Pitre
2014-06-04 17:30                   ` Nicolas Pitre
2014-06-04 19:24                   ` Arnd Bergmann
2014-06-04 19:24                     ` [Cluster-devel] " Arnd Bergmann
2014-06-04 19:24                     ` Arnd Bergmann
2014-06-04 19:24                     ` [Ocfs2-devel] " Arnd Bergmann
2014-06-04 19:24                     ` Arnd Bergmann
2014-06-04 19:24                     ` Arnd Bergmann
2014-06-05  0:10                     ` H. Peter Anvin
2014-06-05  0:10                       ` [Cluster-devel] " H. Peter Anvin
2014-06-05  0:10                       ` H. Peter Anvin
2014-06-05  0:10                       ` [Ocfs2-devel] " H. Peter Anvin
2014-06-05  0:10                       ` H. Peter Anvin
2014-06-05  0:10                       ` H. Peter Anvin
2014-06-10  9:54                       ` Arnd Bergmann
2014-06-10  9:54                         ` [Cluster-devel] " Arnd Bergmann
2014-06-10  9:54                         ` Arnd Bergmann
2014-06-10  9:54                         ` [Ocfs2-devel] " Arnd Bergmann
2014-06-10  9:54                         ` Arnd Bergmann
2014-06-10  9:54                         ` Arnd Bergmann
2014-06-02 21:02     ` Joseph S. Myers
2014-06-02 21:02       ` [Cluster-devel] " Joseph S. Myers
2014-06-02 21:02       ` Joseph S. Myers
2014-06-02 21:02       ` [Ocfs2-devel] " Joseph S. Myers
2014-06-02 21:02       ` Joseph S. Myers
2014-06-02 21:02       ` Joseph S. Myers
2014-06-02 21:02       ` Joseph S. Myers
2014-06-04 15:05       ` Arnd Bergmann
2014-06-04 15:05         ` [Cluster-devel] " Arnd Bergmann
2014-06-04 15:05         ` Arnd Bergmann
2014-06-04 15:05         ` [Ocfs2-devel] " Arnd Bergmann
2014-06-04 15:05         ` Arnd Bergmann
2014-06-04 15:05         ` Arnd Bergmann

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=6394184.hHtXJE2Bp6@wuerfel \
    --to=arnd@arndb.de \
    --cc=adilger.kernel@dilger.ca \
    --cc=akpm@linux-foundation.org \
    --cc=geert@linux-m68k.org \
    --cc=hch@infradead.org \
    --cc=hpa@zytor.com \
    --cc=jack@suse.cz \
    --cc=john.stultz@linaro.org \
    --cc=joseph@codesourcery.com \
    --cc=lftan@altera.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    /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.