From: "Darrick J. Wong" <darrick.wong@oracle.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: Arnd Bergmann <arnd@arndb.de>,
linux-xfs <linux-xfs@vger.kernel.org>,
y2038 Mailman List <y2038@lists.linaro.org>,
Brian Foster <bfoster@redhat.com>,
Dave Chinner <dchinner@redhat.com>,
Allison Collins <allison.henderson@oracle.com>,
Jan Kara <jack@suse.cz>, Eric Sandeen <sandeen@sandeen.net>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/3] xfs: disallow broken ioctls without compat-32-bit-time
Date: Tue, 7 Jan 2020 10:16:14 -0800 [thread overview]
Message-ID: <20200107181614.GA917713@magnolia> (raw)
In-Reply-To: <20200107141634.GC10628@infradead.org>
On Tue, Jan 07, 2020 at 06:16:34AM -0800, Christoph Hellwig wrote:
> On Thu, Jan 02, 2020 at 10:07:49AM -0800, Darrick J. Wong wrote:
> > > Sorry I missed that comment earlier. I've had a fresh look now, but
> > > I think we still need to deprecate XFS_IOC_SWAPEXT and add a
> > > v5 version of it, since the comparison will fail as soon as the range
> > > of the inode timestamps is extended beyond 2038, otherwise the
> > > comparison will always be false, or require comparing the truncated
> > > time values which would add yet another representation.
> >
> > I prefer we replace the old SWAPEXT with a new version to get rid of
> > struct xfs_bstat. Though a SWAPEXT_V5 probably only needs to contain
> > the *stat fields that swapext actually needs to check that the file
> > hasn't been changed, which would be ino/gen/btime/ctime.
> >
> > (Maybe I'd add an offset/length too...)
>
> And most importantly we need to lift it to the VFS instead of all the
> crazy fs specific interfaces at the moment.
Yeah. Fixing that (and maybe adding an ioctl to set the FS UUID online)
were on my list for 5.6 but clearly I have to defer everything until 5.7
because we've just run out of time.
Uh... I started looking into unifying the ext4 and xfs defrag ioctl, but
gagged when I realized that the ext4 ioctl also handles the data copy
inside the kernel. I think that's the sort of behavior we should /not/
allow into the new ioctl, though that also means that the required
changes for ext4/e4defrag will be non-trivial.
The btrfs defrag ioctl also contains thresholding information and
optional knobs to enable compression, which makes me wonder if we should
focus narrowly on swapext being "swap these extents but only if the
source file hasn't changed" and not necessarily defrag?
...in which case I wonder, can people (ab)use this interface for atomic
file updates? Create an O_TMPFILE, reflink the source file into the
temp file, make your updates to the tempfile, and then swapext the
donor's file data back into the source file, but only if the source file
hasn't changed?
--D
next prev parent reply other threads:[~2020-01-07 18:16 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-18 16:39 [PATCH 1/3] xfs: rename compat_time_t to old_time32_t Arnd Bergmann
2019-12-18 16:39 ` [PATCH 2/3] xfs: disallow broken ioctls without compat-32-bit-time Arnd Bergmann
2019-12-24 8:45 ` Christoph Hellwig
2020-01-02 9:16 ` Arnd Bergmann
2020-01-02 18:07 ` Darrick J. Wong
2020-01-07 14:16 ` Christoph Hellwig
2020-01-07 18:16 ` Darrick J. Wong [this message]
2020-01-08 8:57 ` Christoph Hellwig
2020-01-02 20:34 ` Arnd Bergmann
2020-01-07 14:15 ` Christoph Hellwig
2019-12-18 16:44 ` [PATCH 3/3] xfs: quota: move to time64_t interfaces Arnd Bergmann
2019-12-24 8:39 ` [PATCH 1/3] xfs: rename compat_time_t to old_time32_t Christoph Hellwig
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=20200107181614.GA917713@magnolia \
--to=darrick.wong@oracle.com \
--cc=allison.henderson@oracle.com \
--cc=arnd@arndb.de \
--cc=bfoster@redhat.com \
--cc=dchinner@redhat.com \
--cc=hch@infradead.org \
--cc=jack@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=sandeen@sandeen.net \
--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