From: Arnd Bergmann <arnd@arndb.de>
To: "Theodore Y. Ts'o" <tytso@mit.edu>,
Deepa Dinamani <deepa.kernel@gmail.com>,
"Darrick J. Wong" <darrick.wong@oracle.com>,
Alexander Viro <viro@zeniv.linux.org.uk>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux FS-devel Mailing List <linux-fsdevel@vger.kernel.org>,
Arnd Bergmann <arnd@arndb.de>,
y2038 Mailman List <y2038@lists.linaro.org>,
Andreas Dilger <adilger.kernel@dilger.ca>,
Ext4 Developers List <linux-ext4@vger.kernel.org>
Subject: Re: [PATCH 09/20] ext4: Initialize timestamps limits
Date: Fri, 2 Aug 2019 12:39:41 +0200 [thread overview]
Message-ID: <CAK8P3a3nqmWBXBiFL1kGmJ7yQ_=5S4Kok0YVB3VMFVBuYjFGOQ@mail.gmail.com> (raw)
In-Reply-To: <20190801224344.GC17372@mit.edu>
On Fri, Aug 2, 2019 at 12:43 AM Theodore Y. Ts'o <tytso@mit.edu> wrote:
>
> On Thu, Aug 01, 2019 at 12:18:28PM -0700, Deepa Dinamani wrote:
> > > Say you have a filesystem with s_inode_size > 128 where not all of the
> > > ondisk inodes have been upgraded to i_extra_isize > 0 and therefore
> > > don't support nanoseconds or times beyond 2038. I think this happens on
> > > ext3 filesystems that reserved extra space for inode attrs that are
> > > subsequently converted to ext4?
> >
> > I'm confused about ext3 being converted to ext4. If the converted
> > inodes have extra space, then ext4_iget() will start using the extra
> > space when it modifies the on disk inode, won't it?i
>
> It is possible that you can have an ext3 file system with (for
> example) 256 byte inodes, and all of the extra space was used for
> extended attributes, then ext4 won't have the extra space available.
> This is going toh be on an inode-by-inode basis, and if an extended
> attribute is motdified or deleted, the space would become available,t
> and then inode would start getting a higher resolution timestamp.
Is it correct to assume that this kind of file would have to be
created using the ext3.ko file system implementation that was
removed in linux-4.3, but not using ext2.ko or ext4.ko (which
would always set the extended timestamps even in "-t ext2" or
"-t ext3" mode)?
I tried to reproduce this on a modern kernel and with and
moderately old debugfs (1.42.13) but failed.
> I really don't think it's worth worrying about that, though. It's
> highly unlikely ext3 file systems will be still be in service by the
> time it's needed in 2038. And if so, it's highly unlikely they would
> be converted to ext4.
As the difference is easily visible even before y2038 by using
utimensat(old_inode, future_date) on a file, we should at least
decide what the sanest behavior is that we can easily implement,
and then document what is expected to happen here.
If we check for s_min_extra_isize instead of s_inode_size
to determine s_time_gran/s_time_max, we would warn
at mount time as well as and consistently truncate all
timestamps to full 32-bit seconds, regardless of whether
there is actually space or not.
Alternatively, we could warn if s_min_extra_isize is
too small, but use i_inode_size to determine
s_time_gran/s_time_max anyway.
From looking at e2fsprogs git history, I see that
s_min_extra_isize has always been set by mkfs since
2008, but I'm not sure if there would have been a
case in which it remains set but the ext3.ko would
ignore it and use that space anyway.
Arnd
next prev parent reply other threads:[~2019-08-02 10:40 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-30 1:49 [PATCH 00/20] vfs: Add support for timestamp limits Deepa Dinamani
2019-07-30 1:49 ` [PATCH 01/20] vfs: Add file timestamp range support Deepa Dinamani
2019-07-30 1:49 ` [PATCH 02/20] vfs: Add timestamp_truncate() api Deepa Dinamani
2019-07-30 1:49 ` [PATCH 03/20] timestamp_truncate: Replace users of timespec64_trunc Deepa Dinamani
2019-07-30 8:27 ` OGAWA Hirofumi
2019-07-30 17:26 ` Deepa Dinamani
2019-07-30 22:28 ` Anton Altaparmakov
2019-07-31 0:08 ` Deepa Dinamani
2019-07-30 1:49 ` [PATCH 04/20] mount: Add mount warning for impending timestamp expiry Deepa Dinamani
2019-08-05 14:12 ` [Y2038] " Ben Hutchings
2019-08-05 14:40 ` Arnd Bergmann
2019-08-10 20:47 ` Deepa Dinamani
2019-08-05 14:14 ` Ben Hutchings
2019-08-10 20:44 ` Deepa Dinamani
2019-08-12 13:25 ` Ben Hutchings
2019-08-12 14:11 ` Arnd Bergmann
2019-08-12 16:09 ` Deepa Dinamani
2019-08-12 16:15 ` Deepa Dinamani
2019-08-12 17:43 ` Ben Hutchings
2019-07-30 1:49 ` [PATCH 05/20] utimes: Clamp the timestamps before update Deepa Dinamani
2019-07-31 15:14 ` Darrick J. Wong
2019-07-31 15:33 ` Deepa Dinamani
2019-08-05 13:30 ` [Y2038] " Ben Hutchings
2019-08-10 20:36 ` Deepa Dinamani
2019-07-30 1:49 ` [PATCH 06/20] fs: Fill in max and min timestamps in superblock Deepa Dinamani
2019-07-31 15:28 ` Darrick J. Wong
2019-07-30 1:49 ` [PATCH 07/20] 9p: Fill min and max timestamps in sb Deepa Dinamani
2019-07-30 1:49 ` [PATCH 08/20] adfs: Fill in max and min " Deepa Dinamani
2019-07-30 1:49 ` [PATCH 09/20] ext4: Initialize timestamps limits Deepa Dinamani
2019-07-31 15:26 ` Darrick J. Wong
2019-08-01 19:18 ` Deepa Dinamani
2019-08-01 22:43 ` Theodore Y. Ts'o
2019-08-02 10:39 ` Arnd Bergmann [this message]
2019-08-02 15:43 ` Theodore Y. Ts'o
2019-08-02 19:00 ` Arnd Bergmann
2019-08-02 21:39 ` Theodore Y. Ts'o
2019-08-03 9:30 ` Arnd Bergmann
2019-08-03 16:02 ` Theodore Y. Ts'o
2019-08-03 20:24 ` Arnd Bergmann
2019-08-07 18:04 ` Andreas Dilger
2019-08-08 18:27 ` Deepa Dinamani
2019-07-30 1:49 ` [PATCH 10/20] fs: nfs: Initialize filesystem timestamp ranges Deepa Dinamani
2019-07-30 1:49 ` [PATCH 11/20] fs: cifs: " Deepa Dinamani
2019-07-30 1:49 ` [PATCH 12/20] fs: fat: " Deepa Dinamani
2019-07-30 9:31 ` OGAWA Hirofumi
2019-07-30 17:39 ` Deepa Dinamani
2019-07-31 0:48 ` OGAWA Hirofumi
2019-07-30 1:49 ` [PATCH 13/20] fs: affs: " Deepa Dinamani
2019-08-01 11:28 ` David Sterba
2019-07-30 1:49 ` [PATCH 14/20] fs: sysv: " Deepa Dinamani
2019-07-30 1:49 ` [PATCH 15/20] fs: ceph: " Deepa Dinamani
2019-07-30 1:49 ` [PATCH 16/20] fs: orangefs: " Deepa Dinamani
2019-07-30 1:49 ` [PATCH 17/20] fs: hpfs: " Deepa Dinamani
2019-07-30 1:49 ` [PATCH 18/20] fs: omfs: " Deepa Dinamani
2019-07-30 14:25 ` Bob Copeland
2019-07-30 1:49 ` [PATCH 19/20] pstore: fs superblock limits Deepa Dinamani
2019-07-30 4:31 ` Kees Cook
2019-07-30 7:36 ` Arnd Bergmann
2019-08-02 2:26 ` Deepa Dinamani
2019-08-02 7:15 ` Arnd Bergmann
2019-08-18 14:00 ` Deepa Dinamani
2019-07-30 1:49 ` [PATCH 20/20] isofs: Initialize filesystem timestamp ranges 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='CAK8P3a3nqmWBXBiFL1kGmJ7yQ_=5S4Kok0YVB3VMFVBuYjFGOQ@mail.gmail.com' \
--to=arnd@arndb.de \
--cc=adilger.kernel@dilger.ca \
--cc=darrick.wong@oracle.com \
--cc=deepa.kernel@gmail.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tytso@mit.edu \
--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
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).