All of lore.kernel.org
 help / color / mirror / Atom feed
From: "J. Bruce Fields" <bfields@fieldses.org>
To: "Kornievskaia, Olga" <Olga.Kornievskaia@netapp.com>
Cc: Rick Macklem <rmacklem@uoguelph.ca>,
	"linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>
Subject: Re: NFSv4.2 server replies to Copy with length == 0
Date: Wed, 16 Oct 2019 16:31:50 -0400	[thread overview]
Message-ID: <20191016203150.GC17543@fieldses.org> (raw)
In-Reply-To: <31E6043B-090D-4E37-B66F-A45AC0CFC970@netapp.com>

On Wed, Oct 16, 2019 at 07:53:45PM +0000, Kornievskaia, Olga wrote:
> On 10/16/19, 11:58 AM, "J. Bruce Fields" <bfields@fieldses.org> wrote:
>     On Wed, Oct 16, 2019 at 06:22:42AM +0000, Rick Macklem wrote:
>     > It seems that the Copy reply with wr_count == 0 occurs when the
>     > client sends a Copy request with ca_src_offset beyond EOF in the
>     > input file.  (It happened because I was testing an old/broken
>     > version of my client, but I can reproduce it, if you need a
>     > bugfix to be tested. I don't know if the case of
>     > ca_src_offset+ca_count beyond EOF behaves the same?) --> The RFC
>     > seems to require a reply of NFS4ERR_INVAL for this case.
>     
>     I've never understood that INVAL requirement.  But I know it's
>     been discussed before, maybe there was some justification for it
>     that I've forgotten.
> 
> Sigh, well, I don’t know if we should consider adding the check to the
> NFS server to be NFS spec compliant. VFS layer didn't want the check
> and instead the preference has been to keep read() semantics of
> returning a short read (when the len was beyond the end of the file or
> if the source) to something beyond the end of the file.

I'm inclined to think the spec's just wrong.

And how else could a client possibly interpret a 0 return?

> On the client if VFS did read of len=0 then VFS itself we return 0,
> thus this doesn't protect against other clients sending an NFS copy
> with len=0.  And in NFS, receiving copy with len=0 means copy to the
> end of the file. It's not implemented for any "intra" or "inter" code. 

A call with len=0 sounds like a different case.

--b.

  reply	other threads:[~2019-10-16 20:31 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-16  2:50 NFSv4.2 server replies to Copy with length == 0 Rick Macklem
2019-10-16  6:22 ` Rick Macklem
2019-10-16 15:58   ` J. Bruce Fields
2019-10-16 19:53     ` Kornievskaia, Olga
2019-10-16 20:31       ` J. Bruce Fields [this message]
2019-10-17  2:16         ` Rick Macklem
2019-10-17  4:43           ` Rick Macklem
2019-10-17 14:49             ` J. Bruce Fields
2019-10-17 15:22           ` J. Bruce Fields
2019-10-17 15:39             ` Tom Talpey
2019-10-17 16:20               ` Rick Macklem
2019-10-17 17:15                 ` [nfsv4] " Olga Kornievskaia
2019-10-17 21:34                   ` Rick Macklem
2019-10-17 15:55             ` Rick Macklem
2019-10-17 16:14               ` J. Bruce Fields

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=20191016203150.GC17543@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=Olga.Kornievskaia@netapp.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=rmacklem@uoguelph.ca \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.