All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dr Fields James Bruce <bfields@fieldses.org>
To: Trond Myklebust <trond.myklebust@primarydata.com>
Cc: "Antti Tönkyrä" <daedalus@pingtimeout.net>,
	"Linux NFS Mailing List" <linux-nfs@vger.kernel.org>
Subject: Re: Patch for mapping EILSEQ into NFSERR_INVAL
Date: Wed, 4 Dec 2013 16:38:04 -0500	[thread overview]
Message-ID: <20131204213804.GC19452@fieldses.org> (raw)
In-Reply-To: <22997028-AB15-4D61-A263-011867EE7512@primarydata.com>

On Wed, Dec 04, 2013 at 04:22:48PM -0500, Trond Myklebust wrote:
> 
> On Dec 4, 2013, at 16:03, Dr Fields James Bruce <bfields@fieldses.org> wrote:
> 
> > On Wed, Dec 04, 2013 at 10:44:45PM +0200, Antti Tönkyrä wrote:
> > 
> >>>> http://daedalus.pingtimeout.net/dbg/eilseq_ioerr.pcap
> > 
> > And I see something I'd overlooked before: the client is sending the
> > later opens with the same open owner and sequence id.  But NFS4ERR_IO is
> > a seqid-mutating error.  So now I think this probably *is* a client
> > bug....
> 
> Umm… Yes and no. The client should be able to recover when it discovers that the seqid is out of sync.
>
> That said, I see that we do
> 
>        status = decode_op_hdr(xdr, OP_OPEN);
>         if (status != -EIO)
>                 nfs_increment_open_seqid(status, res->seqid);
> 
> and since NFS4ERR_IO == EIO, that means we skip the seqid update when you send us NFS4ERR_IO.

Oh, OK.  Maybe decode_op_hdr could use -NFS4ERR_BADXDR for the two
decoding errors it catches and eliminate the need for this special -EIO
case?

I think NFS4ERR_IO is a legal error for these operations.  (Even if the
server should have returned something else in this case.)

--b.

  reply	other threads:[~2013-12-04 21:38 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-02 20:21 Patch for mapping EILSEQ into NFSERR_INVAL Antti Tönkyrä
2013-12-02 20:45 ` Trond Myklebust
2013-12-02 20:52   ` Antti Tönkyrä
2013-12-03 20:48     ` Dr Fields James Bruce
2013-12-03 21:22       ` Dr Fields James Bruce
2013-12-04  6:55         ` Antti Tönkyrä
2013-12-04 15:41           ` Dr Fields James Bruce
2013-12-04 20:44             ` Antti Tönkyrä
2013-12-04 21:03               ` Dr Fields James Bruce
2013-12-04 21:08                 ` Antti Tönkyrä
2013-12-04 21:22                 ` Trond Myklebust
2013-12-04 21:38                   ` Dr Fields James Bruce [this message]
2013-12-04 22:49                     ` Trond Myklebust
2013-12-05  8:39                       ` Antti Tönkyrä
2013-12-04 12:33         ` Antti Tönkyrä
2013-12-04 12:40           ` Antti Tönkyrä
2013-12-04  8:31 ` Christoph Hellwig
2013-12-04 11:15   ` Antti Tönkyrä
2013-12-04 11:19     ` Christoph Hellwig
2013-12-04 11:34       ` Antti Tönkyrä
2013-12-05 19:45         ` 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=20131204213804.GC19452@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=daedalus@pingtimeout.net \
    --cc=linux-nfs@vger.kernel.org \
    --cc=trond.myklebust@primarydata.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 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.