From: "J. Bruce Fields" <bfields@fieldses.org>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: Linux NFS Mailing List <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH v1] nfs: Don't increment lock sequence ID after NFS4ERR_MOVED
Date: Tue, 24 Jan 2017 14:53:50 -0500 [thread overview]
Message-ID: <20170124195350.GC20844@fieldses.org> (raw)
In-Reply-To: <20170124194140.GB20844@fieldses.org>
On Tue, Jan 24, 2017 at 02:41:40PM -0500, J. Bruce Fields wrote:
> On Tue, Jan 24, 2017 at 02:31:37PM -0500, Chuck Lever wrote:
> > Adding a justification is OK with me, and please replace the
> > list of steps with my updated list above.
> >
> > However, your explanation implies that Solaris is the only server
> > that might need this fix. Actually _any_ server that supports
> > transparent state migration needs clients to get this fix. Lock
> > operations on a file that has moved are not able to update the
> > sequence ID on the destination server.
>
> Are you sure? Couldn't an implementation include a server-to-server
> protocol that allowed the source and destination server to share stateid
> information?
>
> But even if that's possible, it may be unnecessarily complicated, so I
> agree I shouldn't be claiming it's a Solaris-specific issue (though it
> may be worth documenting that's who first hit this).
>
> --b.
>
> > This backwards-compatible change is OK because:
> >
> > - No servers in the wild support migration yet, thus
> > NFS4ERR_MOVED is never returned by existing servers
I think you mean "transparent state migration" there?
A server supporting non-transparent state migration could return
NFS4ERR_MOVED on a LOCK operation, but the client won't be able to use
that stateid afterwards in that case anyway.
> > - Clients that do not support migration should never receive
> > NFS4ERR_MOVED on a state-mutating operation
I didn't think there was a way for clients to advertise non-support for
migration?
But such clients could never recover from MOVED anyway, so we're not
making things worse for them.
--b.
> >
> > In other words, this change is necessary only for clients that
> > support TSM.
> >
> > Salt to taste.
> >
> >
> > > --b.
> > >
> > >>
> > >>
> > >>> --b.
> > >>>
> > >>>>>
> > >>>>> Reported-by: Xuan Qi <xuan.qi@oracle.com>
> > >>>>> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> > >>>>> Cc: stable@vger.kernel.org # v3.7+
> > >>>>> ---
> > >>>>> include/linux/nfs4.h | 3 ++-
> > >>>>> 1 file changed, 2 insertions(+), 1 deletion(-)
> > >>>>>
> > >>>>> diff --git a/include/linux/nfs4.h b/include/linux/nfs4.h
> > >>>>> index bca5363..1b1ca04 100644
> > >>>>> --- a/include/linux/nfs4.h
> > >>>>> +++ b/include/linux/nfs4.h
> > >>>>> @@ -282,7 +282,7 @@ enum nfsstat4 {
> > >>>>>
> > >>>>> static inline bool seqid_mutating_err(u32 err)
> > >>>>> {
> > >>>>> - /* rfc 3530 section 8.1.5: */
> > >>>>> + /* See RFC 7530, section 9.1.7 */
> > >>>>> switch (err) {
> > >>>>> case NFS4ERR_STALE_CLIENTID:
> > >>>>> case NFS4ERR_STALE_STATEID:
> > >>>>> @@ -291,6 +291,7 @@ static inline bool seqid_mutating_err(u32 err)
> > >>>>> case NFS4ERR_BADXDR:
> > >>>>> case NFS4ERR_RESOURCE:
> > >>>>> case NFS4ERR_NOFILEHANDLE:
> > >>>>> + case NFS4ERR_MOVED:
> > >>>>> return false;
> > >>>>> };
> > >>>>> return true;
> > >>>>>
> > >>>>> --
> > >>>>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> > >>>>> the body of a message to majordomo@vger.kernel.org
> > >>>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
> > >>>>
> > >>>> --
> > >>>> Chuck Lever
> > >>>>
> > >>>>
> > >>>>
> > >>>> --
> > >>>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> > >>>> the body of a message to majordomo@vger.kernel.org
> > >>>> More majordomo info at http://vger.kernel.org/majordomo-info.html
> > >>> --
> > >>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> > >>> the body of a message to majordomo@vger.kernel.org
> > >>> More majordomo info at http://vger.kernel.org/majordomo-info.html
> > >>
> > >> --
> > >> Chuck Lever
> > >>
> > >>
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> > > the body of a message to majordomo@vger.kernel.org
> > > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
> > --
> > Chuck Lever
> >
> >
next prev parent reply other threads:[~2017-01-24 19:53 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-22 19:04 [PATCH v1] nfs: Don't increment lock sequence ID after NFS4ERR_MOVED Chuck Lever
2017-01-23 15:01 ` Chuck Lever
2017-01-23 16:49 ` J. Bruce Fields
2017-01-24 19:06 ` Chuck Lever
2017-01-24 19:15 ` J. Bruce Fields
2017-01-24 19:31 ` Chuck Lever
2017-01-24 19:41 ` J. Bruce Fields
2017-01-24 19:53 ` J. Bruce Fields [this message]
2017-01-24 19:58 ` Chuck Lever
2017-01-24 19:54 ` Chuck Lever
2017-01-24 20:23 ` Trond Myklebust
2017-01-24 20:31 ` bfields
2017-01-25 19:58 ` Chuck Lever
2017-01-25 20:08 ` Chuck Lever
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=20170124195350.GC20844@fieldses.org \
--to=bfields@fieldses.org \
--cc=chuck.lever@oracle.com \
--cc=linux-nfs@vger.kernel.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 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.