[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20200903211306.GE12131@dread.disaster.area>
Date: Fri, 4 Sep 2020 07:13:06 +1000
From: Dave Chinner <david@...morbit.com>
To: "Darrick J. Wong" <darrick.wong@...cle.com>
Cc: linux-fsdevel <linux-fsdevel@...r.kernel.org>,
xfs <linux-xfs@...r.kernel.org>,
linux-btrfs <linux-btrfs@...r.kernel.org>,
linux-ext4 <linux-ext4@...r.kernel.org>,
ocfs2 list <ocfs2-devel@....oracle.com>,
Christoph Hellwig <hch@...radead.org>,
Eric Sandeen <sandeen@...hat.com>,
Theodore Ts'o <tytso@....edu>
Subject: Re: Broken O_{D,}SYNC behavior with FICLONE*?
On Wed, Sep 02, 2020 at 08:52:25PM -0700, Darrick J. Wong wrote:
> Hi,
>
> I have a question for everyone-- do FICLONE and FICLONERANGE count as a
> "write operation" for the purposes of reasoning about O_SYNC and
> O_DSYNC?
I'd say yes, because we are changing metadata that is used to
directly reference the data in the file. O_DSYNC implies all the
metadata needed to access the data is on stable storage when the
operation returns....
> So, that's inconsistent behavior and I want to know if remap_file_range
> is broken or if we all just don't care about O_SYNC for these fancy
> IO accelerators?
Perhaps we should pay attention to the NFSD implementation of CloneFR -
if the operation is sync then it will run fsync on the destination
and commit_metadata on the source inode. See
nfsd4_clone_file_range().
So, yeah, I think clone operations need to pay attention to
O_DSYNC/O_SYNC/IS_SYNC()....
Cheers,
Dave.
--
Dave Chinner
david@...morbit.com
Powered by blists - more mailing lists