linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] NFSv4 fix nfs4_stateid_is_current processing
@ 2014-03-04 17:31 andros
  2014-03-04 17:31 ` [PATCH 1/4] NFSv4 propagate nfs4_stateid_is_current errors andros
                   ` (5 more replies)
  0 siblings, 6 replies; 31+ messages in thread
From: andros @ 2014-03-04 17:31 UTC (permalink / raw)
  To: trond.myklebust; +Cc: linux-nfs, Andy Adamson

From: Andy Adamson <andros@netapp.com>

This is an expanded version of the "NFSv4 always compare stateids in nfs4_stateid_is_current" patch I sent on Feb 27.

Found at Connectathon 2014 and NetApp internal testing.

nfs4_stateid_is_current is used on the NFSv4 I/O path to determine if a
stateid has changed. The idea is that if there is a stateid expire error
such as NFS4ERR_BAD_STATEID and the stateid used that induced the error has
changed, then we can just resend the RPC from the call prepare state with
the changed stateid instead of kicking off recovery as the changed stateid
indicates it already had been recovered.

This patch set fixes a false positive that resulted in an NFS4ERR_BAD_STATEID
infinite loop. Trond pointed out that the nfs4_select_rw_stateid -EIO error
is special in that it indicates a lost lock.

As I examined the use of nfs4_select_rw_stateid, I addressed some other errors
in the use of nfs4_set_rw_stateid and friends in setattr and filelayout
prepare functions.

Just tested with connectathon tests. Will test more once I'm back in town...

-->Andy


Andy Adamson (4):
  NFSv4 propagate nfs4_stateid_is_current errors
  NFSv4 Check errors on stateid changed functions in I/O path
  NFSv4 _nfs4_do_setattr use zero stateid on lost lock
  NFSv4.1 Fail data server I/O if stateid represents a lost lock

 fs/nfs/nfs4filelayout.c |  10 +++--
 fs/nfs/nfs4proc.c       | 116 ++++++++++++++++++++++++++++++++++++------------
 fs/nfs/nfs4state.c      |   6 +++
 3 files changed, 100 insertions(+), 32 deletions(-)

-- 
1.8.3.1


^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, other threads:[~2014-03-05 18:30 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-04 17:31 [PATCH 0/4] NFSv4 fix nfs4_stateid_is_current processing andros
2014-03-04 17:31 ` [PATCH 1/4] NFSv4 propagate nfs4_stateid_is_current errors andros
2014-03-04 17:31 ` [PATCH 2/4] NFSv4 Check errors on stateid changed functions in I/O path andros
2014-03-04 18:08   ` Anna Schumaker
2014-03-05  8:52     ` Andy Adamson
2014-03-04 17:31 ` [PATCH 3/4] NFSv4 _nfs4_do_setattr use zero stateid on lost lock andros
2014-03-04 18:42   ` Trond Myklebust
2014-03-05  8:51     ` Andy Adamson
2014-03-05 13:04       ` Trond Myklebust
2014-03-04 17:31 ` [PATCH 4/4] NFSv4.1 Fail data server I/O if stateid represents a " andros
2014-03-04 17:33   ` Trond Myklebust
2014-03-04 18:09 ` [PATCH 0/4] NFSv4 fix nfs4_stateid_is_current processing Trond Myklebust
2014-03-05 10:58   ` Andy Adamson
2014-03-05 13:13     ` Trond Myklebust
2014-03-04 19:05 ` [PATCH v2 0/3] " Trond Myklebust
2014-03-04 19:05   ` [PATCH v2 1/3] NFSv4: Fix the return value of nfs4_select_rw_stateid Trond Myklebust
2014-03-04 19:05     ` [PATCH v2 2/3] NFSv4.1 Fail data server I/O if stateid represents a lost lock Trond Myklebust
2014-03-04 19:05       ` [PATCH v2 3/3] NFSv4: Fail the truncate() if the lock/open stateid is invalid Trond Myklebust
2014-03-05 11:40         ` Andy Adamson
2014-03-05 13:29           ` Trond Myklebust
2014-03-05 10:59   ` [PATCH v2 0/3] NFSv4 fix nfs4_stateid_is_current processing Andy Adamson
2014-03-05 14:07   ` [PATCH v3 0/4] " Trond Myklebust
2014-03-05 14:07     ` [PATCH v3 1/4] NFSv4: nfs4_stateid_is_current should return 'true' for an invalid stateid Trond Myklebust
2014-03-05 14:07       ` [PATCH v3 2/4] NFSv4: Fix the return value of nfs4_select_rw_stateid Trond Myklebust
2014-03-05 14:07         ` [PATCH v3 3/4] NFSv4.1 Fail data server I/O if stateid represents a lost lock Trond Myklebust
2014-03-05 14:07           ` [PATCH v3 4/4] NFSv4: Fail the truncate() if the lock/open stateid is invalid Trond Myklebust
2014-03-05 18:30     ` [PATCH v4 0/4] NFSv4 fix nfs4_stateid_is_current processing Trond Myklebust
2014-03-05 18:30       ` [PATCH v4 1/4] NFSv4: nfs4_stateid_is_current should return 'true' for an invalid stateid Trond Myklebust
2014-03-05 18:30         ` [PATCH v4 2/4] NFSv4: Fix the return value of nfs4_select_rw_stateid Trond Myklebust
2014-03-05 18:30           ` [PATCH v4 3/4] NFSv4.1 Fail data server I/O if stateid represents a lost lock Trond Myklebust
2014-03-05 18:30             ` [PATCH v4 4/4] NFSv4: Fail the truncate() if the lock/open stateid is invalid Trond Myklebust

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).