From: Anna Schumaker <Anna.Schumaker@netapp.com> To: Deepa Dinamani <deepa.kernel@gmail.com>, Trond Myklebust <trondmy@primarydata.com> Cc: "linux-fsdevel@vger.kernel.org" <linux-fsdevel@vger.kernel.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Arnd Bergmann <arnd@arndb.de>, Thomas Gleixner <tglx@linutronix.de>, Al Viro <viro@zeniv.linux.org.uk>, Linus Torvalds <torvalds@linux-foundation.org>, "y2038@lists.linaro.org" <y2038@lists.linaro.org>, "linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org> Subject: Re: [PATCH 18/21] fs: nfs: Make nfs boot time y2038 safe Date: Fri, 10 Jun 2016 09:12:55 -0400 Message-ID: <d135d52c-be6d-8d89-a619-03210774ec42@Netapp.com> (raw) In-Reply-To: <CABeXuvoLr7amTYBs5AbMv15Vqx2CQib9F8Qr4GzX9RoZZ9ZnpQ@mail.gmail.com> On 06/09/2016 05:10 PM, Deepa Dinamani wrote: >>> boot_time is represented as a struct timespec. >>> struct timespec and CURRENT_TIME are not y2038 safe. >>> Overall, the plan is to use timespec64 for all internal >>> kernel representation of timestamps. >>> CURRENT_TIME will also be removed. >>> Use struct timespec64 to represent boot_time. >>> And, ktime_get_real_ts64() for the boot_time value. >>> >>> boot_time is used to construct the nfs client boot verifier. >>> This will now wrap in 2106 instead of 2038 on 32-bit systems. >>> The server only relies on the value being persistent until >>> reboot so the wrapping should be fine. >> >> We really do not give a damn about wraparound here, since the boot time is >> only ever compared for an exact match, and the odds of two reboots occurring >> exactly 2^32 * 10^9 nanoseconds apart are cosmically small... >> If struct timespec is going away, can we just convert this into a ktime_t? > > timespec64 is the same as timespec already on 64 bit machines. > But, yes, we can use ktime_t here. > > Did you mean the internal storage value or the wire boo_time used for verifier? > In case you don't want to change the wire value, then we will have a division > operation, every time the verifier needs to be sent. The verifier is mostly used during mounting, so we don't send too many of them. I don't think we need to worry about adding an extra division operation here, they're pretty cheap compared to making RPC calls! :) Anna > > -Deepa > > -Deepa >
next prev parent reply index Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-06-09 5:04 [PATCH 00/21] Delete CURRENT_TIME and CURRENT_TIME_SEC macros Deepa Dinamani 2016-06-09 5:04 ` [PATCH 01/21] fs: Replace CURRENT_TIME_SEC with current_fs_time() Deepa Dinamani 2016-06-09 7:35 ` Jan Kara 2016-06-09 19:15 ` Linus Torvalds 2016-06-09 20:41 ` Deepa Dinamani 2016-06-09 12:31 ` Bob Copeland 2016-06-10 22:21 ` Arnd Bergmann 2016-06-11 5:03 ` Deepa Dinamani 2016-06-11 20:55 ` Arnd Bergmann 2016-06-09 5:04 ` [PATCH 02/21] fs: ext4: Use current_fs_time() for inode timestamps Deepa Dinamani 2016-06-09 18:45 ` Linus Torvalds 2016-06-09 18:55 ` Linus Torvalds 2016-06-10 22:19 ` [Y2038] " Arnd Bergmann 2016-06-14 17:55 ` Deepa Dinamani 2016-06-14 20:59 ` Arnd Bergmann 2016-06-09 5:04 ` [PATCH 03/21] fs: ubifs: " Deepa Dinamani 2016-06-09 5:04 ` [PATCH 05/21] fs: jfs: Replace CURRENT_TIME_SEC by current_fs_time() Deepa Dinamani 2016-06-09 5:04 ` [PATCH 06/21] fs: udf: Replace CURRENT_TIME with current_fs_time() Deepa Dinamani 2016-06-09 7:41 ` Jan Kara 2016-06-10 0:53 ` Deepa Dinamani 2016-06-09 5:04 ` [PATCH 07/21] fs: cifs: Replace CURRENT_TIME by current_fs_time() Deepa Dinamani 2016-06-09 5:04 ` [PATCH 08/21] fs: cifs: Replace CURRENT_TIME with ktime_get_real_ts() Deepa Dinamani 2016-06-09 5:04 ` [PATCH 09/21] fs: cifs: Replace CURRENT_TIME by get_seconds Deepa Dinamani 2016-06-09 5:04 ` [PATCH 10/21] fs: f2fs: Use ktime_get_real_seconds for sit_info times Deepa Dinamani 2016-06-09 5:04 ` [PATCH 11/21] drivers: staging: lustre: Replace CURRENT_TIME with current_fs_time() Deepa Dinamani 2016-06-11 0:36 ` [lustre-devel] " James Simmons 2016-06-11 1:53 ` Andreas Dilger 2016-06-09 5:04 ` [PATCH 12/21] block: rbd: Replace non inode " Deepa Dinamani 2016-06-09 5:04 ` [PATCH 13/21] fs: ocfs2: Use time64_t to represent orphan scan times Deepa Dinamani 2016-06-09 5:04 ` [PATCH 14/21] fs: ocfs2: Replace CURRENT_TIME with ktime_get_real_seconds() Deepa Dinamani 2016-06-09 5:04 ` [PATCH 15/21] time: Add time64_to_tm() Deepa Dinamani 2016-06-14 21:18 ` John Stultz 2016-06-15 17:44 ` Deepa Dinamani 2016-06-17 20:52 ` John Stultz 2016-06-17 20:59 ` Deepa Dinamani 2016-06-17 21:06 ` Arnd Bergmann 2016-06-09 5:05 ` [PATCH 16/21] fnic: Use time64_t to represent trace timestamps Deepa Dinamani 2016-06-09 5:05 ` [PATCH 17/21] audit: Use timespec64 to represent audit timestamps Deepa Dinamani 2016-06-09 14:31 ` Steve Grubb 2016-06-09 23:59 ` Richard Guy Briggs 2016-06-10 0:19 ` Steve Grubb 2016-06-10 1:44 ` Richard Guy Briggs 2016-06-15 21:23 ` Paul Moore 2016-06-10 0:45 ` Deepa Dinamani 2016-06-09 5:05 ` [PATCH 18/21] fs: nfs: Make nfs boot time y2038 safe Deepa Dinamani 2016-06-09 19:23 ` Trond Myklebust 2016-06-09 21:10 ` Deepa Dinamani 2016-06-10 13:12 ` Anna Schumaker [this message] 2016-06-10 14:02 ` Trond Myklebust 2016-06-09 5:05 ` [PATCH 19/21] libceph: Remove CURRENT_TIME references Deepa Dinamani 2016-06-09 5:05 ` [PATCH 20/21] libceph: Replace CURRENT_TIME with ktime_get_real_ts Deepa Dinamani 2016-06-09 5:05 ` [PATCH 21/21] time: Delete CURRENT_TIME_SEC and CURRENT_TIME macro Deepa Dinamani 2016-06-14 21:20 ` John Stultz 2016-06-09 7:51 ` [PATCH 00/21] Delete CURRENT_TIME and CURRENT_TIME_SEC macros Felipe Balbi
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=d135d52c-be6d-8d89-a619-03210774ec42@Netapp.com \ --to=anna.schumaker@netapp.com \ --cc=arnd@arndb.de \ --cc=deepa.kernel@gmail.com \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-nfs@vger.kernel.org \ --cc=tglx@linutronix.de \ --cc=torvalds@linux-foundation.org \ --cc=trondmy@primarydata.com \ --cc=viro@zeniv.linux.org.uk \ --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
LKML Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git git clone --mirror https://lore.kernel.org/lkml/9 lkml/git/9.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \ linux-kernel@vger.kernel.org public-inbox-index lkml Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel AGPL code for this site: git clone https://public-inbox.org/public-inbox.git