From: Trond Myklebust <trondmy@hammerspace.com>
To: "darrick.wong@oracle.com" <darrick.wong@oracle.com>,
"xzhou@redhat.com" <xzhou@redhat.com>
Cc: "fstests@vger.kernel.org" <fstests@vger.kernel.org>
Subject: Re: [PATCH] generic/517: notrun on NFS due to unaligned dedupe in test
Date: Thu, 30 May 2019 15:55:07 +0000 [thread overview]
Message-ID: <81dfa5e0e611f41e1cbcb2989eecad574422cc26.camel@hammerspace.com> (raw)
In-Reply-To: <20190530152606.GA5383@magnolia>
Hi Darrick,
On Thu, 2019-05-30 at 08:26 -0700, Darrick J. Wong wrote:
> On Thu, May 30, 2019 at 05:41:47PM +0800, Murphy Zhou wrote:
> > NFSv4.2 could pass _require_scratch_dedupe, since the test offset
> > and
> > size are aligned, while generic/517 is performing unaligned dedupe.
> > NFS does not support unaligned dedupe now, returns EINVAL.
> >
> > Signed-off-by: Murphy Zhou <xzhou@redhat.com>
> > ---
> > tests/generic/517 | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/tests/generic/517 b/tests/generic/517
> > index 601bb24e..23665782 100755
> > --- a/tests/generic/517
> > +++ b/tests/generic/517
> > @@ -30,6 +30,7 @@ _cleanup()
> > _supported_fs generic
> > _supported_os Linux
> > _require_scratch_dedupe
> > +$FSTYP == "nfs" && _notrun "NFS can't handle unaligned
> > deduplication"
>
> Uh... NFS supports dedupe??
>
> Let's see, we pass REMAP_FILE_DEDUP to nfs42_remap_file_range via
> @remap_flags. That function checks remap_flags but never touches it
> again. It's not passed to nfs42_proc_clone, which (AFAICT) means
> that
> the nfs client sends a CLONE request to the server on behalf of a
> FS_IOC_EXTENT_SAME ioctl. That seems suspicious to me...
>
> The nfs client also doesn't lock and compare the file contents itself
> (the server should be doing that anyway, right?) which means that
> dedupe
> doesn't fail if the file contents are different?
>
> Oh, I see... Xiaoli Feng turned on dedupe for cifs (b073a08016a10f0)
> and
> nfs (ce96e888fe48e) even though (the last I heard) neither protocol
> supports dedupe and now will corrupt data in doing so.
>
> Let's hold off on this for now while I go email Anna & Steve about
> whether or not nfs and cifs support dedupe.
>
What is the VFS requirement for dedup support?
According to the RFC7862 spec for CLONE: "If SAVED_FH and CURRENT_FH
refer to the same file and the source and target ranges overlap, the
operation MUST fail with NFS4ERR_INVAL."
So clearly we may not support dedup if there is a requirement that we
be able to clone between overlapping ranges on the same file. However I
can find no restriction on using CLONE for non-overlapping ranges.
--
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trond.myklebust@hammerspace.com
next prev parent reply other threads:[~2019-05-30 15:55 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-30 9:41 [PATCH] generic/517: notrun on NFS due to unaligned dedupe in test Murphy Zhou
2019-05-30 15:26 ` Darrick J. Wong
2019-05-30 15:55 ` Trond Myklebust [this message]
2019-05-30 16:03 ` Darrick J. Wong
2019-05-30 16:28 ` Trond Myklebust
2019-05-30 16:45 ` Darrick J. Wong
2019-05-30 15:58 ` NFS & CIFS support dedupe now?? Was: " Darrick J. Wong
2019-05-31 10:48 ` Aurélien Aptel
2019-05-31 13:28 ` Tom Talpey
2019-05-31 15:24 ` Olga Kornievskaia
2019-05-31 15:35 ` Trond Myklebust
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=81dfa5e0e611f41e1cbcb2989eecad574422cc26.camel@hammerspace.com \
--to=trondmy@hammerspace.com \
--cc=darrick.wong@oracle.com \
--cc=fstests@vger.kernel.org \
--cc=xzhou@redhat.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: 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