From: "H. Peter Anvin" <hpa@zytor.com> To: Theodore Ts'o <tytso@mit.edu>, Chuck Lever <chuck.lever@oracle.com>, Arnd Bergmann <arnd@arndb.de>, Nicolas Pitre <nicolas.pitre@linaro.org>, Dave Chinner <david@fromorbit.com>, LKML Kernel <linux-kernel@vger.kernel.org>, linux-arch@vger.kernel.org, joseph@codesourcery.com, john.stultz@linaro.org, Christoph Hellwig <hch@infradead.org>, tglx@linutronix.de, geert@linux-m68k.org, lftan@altera.com, linux-fsdevel <linux-fsdevel@vger.kernel.org>, xfs@oss.sgi.com, Linux NFS Mailing List <linux-nfs@vger.kernel.org> Subject: Re: [RFC 11/32] xfs: convert to struct inode_time Date: Mon, 02 Jun 2014 10:12:37 -0700 [thread overview] Message-ID: <538CB085.5000502@zytor.com> (raw) In-Reply-To: <20140602153124.GH30598@thunk.org> On 06/02/2014 08:31 AM, Theodore Ts'o wrote: > > I wonder if it would make sense to try to promulgate via the Austin > group, and possibly the C standards committee the concept of a bit > pattern (that might commonly be INT_MAX or UINT_MAX) that means "time > unknown", or "time indefinite" or "we couldn't encode the time". > (time_t)-1 already has this meaning for some calls (e.g. time(2)). However, this also means Wed Dec 31 23:59:59 UTC 1969, and unfortunately something similar applies to all possible bit patterns, certainly within the range of an int. > We would then teach gmtime(3) and asctime(3) to print some appropriate > message, and we could teach programs like find (with the -mtime) > option, make, tmpwatch, et. al., that they can't make any presumption > about the comparibility of any timestamp which has a value of > TIME_UNDEFINIED. > > It would be problematic for time(2) or gettimeofday(2) to return > TIME_UNDEFINED, since there are programs that care about time ticking > forward, but I could imagine a new interface which would be permitted > to return a flag indicating that we don't know the current time > (because the CMOS battery had run down, etc.) so instead we're going > to be counting the number of seconds since the system was booted. This assumes that we actually know that that is the case, which may be an aggressive assumption. -hpa _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs
WARNING: multiple messages have this Message-ID (diff)
From: "H. Peter Anvin" <hpa@zytor.com> To: Theodore Ts'o <tytso@mit.edu>, Chuck Lever <chuck.lever@oracle.com>, Arnd Bergmann <arnd@arndb.de>, Nicolas Pitre <nicolas.pitre@linaro.org>, Dave Chinner <david@fromorbit.com>, LKML Kernel <linux-kernel@vger.kernel.org>, linux-arch@vger.kernel.org, joseph@codesourcery.com, john.stultz@linaro.org, Christoph Hellwig <hch@infradead.org>, tglx@linutronix.de, geert@linux-m68k.org, lftan@altera.com, linux-fsdevel <linux-fsdevel@vger.kernel.org>, xfs@oss.sgi.com, Linux NFS Mailing List <linux-nfs@vger.kernel.org> Subject: Re: [RFC 11/32] xfs: convert to struct inode_time Date: Mon, 02 Jun 2014 10:12:37 -0700 [thread overview] Message-ID: <538CB085.5000502@zytor.com> (raw) Message-ID: <20140602171237._Kl4L9Y_Y1DdoPiuDG_OyFwNrxiuB62n3XNd76XcIzA@z> (raw) In-Reply-To: <20140602153124.GH30598@thunk.org> On 06/02/2014 08:31 AM, Theodore Ts'o wrote: > > I wonder if it would make sense to try to promulgate via the Austin > group, and possibly the C standards committee the concept of a bit > pattern (that might commonly be INT_MAX or UINT_MAX) that means "time > unknown", or "time indefinite" or "we couldn't encode the time". > (time_t)-1 already has this meaning for some calls (e.g. time(2)). However, this also means Wed Dec 31 23:59:59 UTC 1969, and unfortunately something similar applies to all possible bit patterns, certainly within the range of an int. > We would then teach gmtime(3) and asctime(3) to print some appropriate > message, and we could teach programs like find (with the -mtime) > option, make, tmpwatch, et. al., that they can't make any presumption > about the comparibility of any timestamp which has a value of > TIME_UNDEFINIED. > > It would be problematic for time(2) or gettimeofday(2) to return > TIME_UNDEFINED, since there are programs that care about time ticking > forward, but I could imagine a new interface which would be permitted > to return a flag indicating that we don't know the current time > (because the CMOS battery had run down, etc.) so instead we're going > to be counting the number of seconds since the system was booted. This assumes that we actually know that that is the case, which may be an aggressive assumption. -hpa
next prev parent reply other threads:[~2014-06-02 17:12 UTC|newest] Thread overview: 203+ 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 ` 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 13:19 ` Geert Uytterhoeven 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:01 ` Arnd Bergmann 2014-05-30 20:18 ` H. Peter Anvin 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-30 20:01 ` Arnd Bergmann 2014-05-31 9:22 ` Andreas Schwab 2014-05-31 9:22 ` Andreas Schwab 2014-05-31 14:55 ` Arnd Bergmann 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 ` 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 ` Arnd Bergmann 2014-05-30 20:01 ` [RFC 06/32] isofs: fix timestamps beyond 2027 Arnd Bergmann 2014-05-30 20:01 ` Arnd Bergmann 2014-05-31 7:59 ` Geert Uytterhoeven 2014-05-31 8:47 ` H. Peter Anvin 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 ` Arnd Bergmann 2014-05-30 20:01 ` [RFC 08/32] fs/ceph: convert to 'struct inode_time' Arnd Bergmann 2014-05-30 20:01 ` Arnd Bergmann 2014-05-30 20:01 ` [RFC 09/32] fs/pstore: convert to struct inode_time Arnd Bergmann 2014-05-30 20:01 ` 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 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 20:26 ` H. Peter Anvin 2014-06-01 20:26 ` H. Peter Anvin 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 7:09 ` Geert Uytterhoeven 2014-06-02 10:56 ` Arnd Bergmann 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 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 [this message] 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:32 ` H. Peter Anvin 2014-06-02 23:32 ` Theodore Ts'o 2014-06-02 23:33 ` H. Peter Anvin 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 [not found] ` <1401735504.6065.227.camel-a4VQZhDi8cycwdHVwLixqTRg56PAaYer@public.gmane.org> 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-05-31 15:37 ` Arnd Bergmann 2014-05-31 15:37 ` Arnd Bergmann 2014-06-01 0:24 ` 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-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-05-30 20:01 ` [RFC 12/32] btrfs: " Arnd Bergmann 2014-05-30 20:01 ` Arnd Bergmann 2014-05-30 20:01 ` [RFC 13/32] ext3: " Arnd Bergmann 2014-05-30 20:01 ` Arnd Bergmann 2014-05-31 9:10 ` H. Peter Anvin 2014-05-31 9:10 ` H. Peter Anvin 2014-05-31 14:32 ` Arnd Bergmann 2014-05-30 20:01 ` [RFC 14/32] ext4: " Arnd Bergmann 2014-05-30 20:01 ` Arnd Bergmann 2014-05-30 20:01 ` [RFC 15/32] cifs: " Arnd Bergmann 2014-05-30 20:01 ` Arnd Bergmann 2014-05-30 20:01 ` [RFC 16/32] ntfs: " Arnd Bergmann 2014-05-30 20:01 ` 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-05-30 20:01 ` [RFC 18/32] ocfs2: " Arnd Bergmann 2014-05-30 20:01 ` [RFC 19/32] fs/fat: " Arnd Bergmann 2014-05-30 20:01 ` Arnd Bergmann 2014-05-30 20:01 ` [RFC 20/32] afs: " Arnd Bergmann 2014-05-30 20:01 ` Arnd Bergmann 2014-05-30 20:01 ` [RFC 21/32] udf: " Arnd Bergmann 2014-05-30 20:01 ` 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 ` Arnd Bergmann 2014-05-30 20:01 ` [RFC 24/32] hfs, hfsplus: " Arnd Bergmann 2014-05-30 20:01 ` Arnd Bergmann 2014-05-31 14:23 ` Vyacheslav Dubeyko 2014-05-30 20:01 ` [RFC 25/32] gfs2: " Arnd Bergmann 2014-06-02 9:52 ` Steven Whitehouse 2014-05-30 20:01 ` [RFC 26/32] reiserfs: " Arnd Bergmann 2014-05-30 20:01 ` 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 ` [RFC 28/32] adfs: " Arnd Bergmann 2014-05-30 20:01 ` Arnd Bergmann 2014-05-30 20:01 ` [RFC 29/32] f2fs: " Arnd Bergmann 2014-05-30 20:01 ` Arnd Bergmann 2014-05-30 20:01 ` [RFC 30/32] fuse: " Arnd Bergmann 2014-05-30 20:01 ` 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 ` Arnd Bergmann 2014-05-30 20:01 ` [RFC 32/32] fs: use new inode_time definition unconditionally Arnd Bergmann 2014-05-30 20:01 ` Arnd Bergmann 2014-05-31 14:30 ` [RFC 00/32] making inode time stamps y2038 ready Vyacheslav Dubeyko 2014-05-31 14:30 ` Vyacheslav Dubeyko 2014-06-03 12:21 ` Arnd Bergmann 2014-06-03 12:21 ` Arnd Bergmann 2014-05-31 14:51 ` Richard Cochran 2014-05-31 15:23 ` Arnd Bergmann 2014-05-31 16:20 ` Geert Uytterhoeven 2014-05-31 18:22 ` Richard Cochran 2014-05-31 18:22 ` Richard Cochran 2014-05-31 19:34 ` H. Peter Anvin 2014-06-01 4:46 ` Richard Cochran 2014-06-01 4:44 ` Richard Cochran 2014-06-01 4:44 ` Richard Cochran 2014-06-02 13:52 ` Joseph S. Myers [not found] ` <Pine.LNX.4.64.1406021350030.19591-9YEB1lltEqivcGRMvF24k2I39yigxGEX@public.gmane.org> 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 ` H. Peter Anvin 2014-06-02 19:55 ` Arnd Bergmann 2014-06-02 21:57 ` H. Peter Anvin 2014-06-02 21:57 ` H. Peter Anvin [not found] ` <538CF346.2070504-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org> 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:37 ` Arnd Bergmann 2014-06-03 14:37 ` Arnd Bergmann 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 ` Arnd Bergmann 2014-06-04 17:30 ` Nicolas Pitre 2014-06-04 17:30 ` Nicolas Pitre [not found] ` <alpine.LFD.2.11.1406041308300.17310-fMhRO7WWcppj+hNMo8g0rg@public.gmane.org> 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 ` H. Peter Anvin 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 ` Joseph S. Myers 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=538CB085.5000502@zytor.com \ --to=hpa@zytor.com \ --cc=arnd@arndb.de \ --cc=chuck.lever@oracle.com \ --cc=david@fromorbit.com \ --cc=geert@linux-m68k.org \ --cc=hch@infradead.org \ --cc=john.stultz@linaro.org \ --cc=joseph@codesourcery.com \ --cc=lftan@altera.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-nfs@vger.kernel.org \ --cc=nicolas.pitre@linaro.org \ --cc=tglx@linutronix.de \ --cc=tytso@mit.edu \ --cc=xfs@oss.sgi.com \ /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: linkBe 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).