On Tue, Jun 16, 2009 at 4:47 PM, J. Bruce Fields<bfields@xxxxxxxxxxxx> wrote: > On Tue, Jun 16, 2009 at 04:19:32AM +0300, Benny Halevy wrote: >> From: Andy Adamson <andros@xxxxxxxxxx> >> >> Replay processing needs to preceed other error processing. > > Why? > Section 18.36.4. (CREATE_SESSION implementation section) states the ordering of clientid confirmation processing as 1) client id record lookup 2) sequence id processing 3) client id confirmation rpc cred processing is done in #3. ->Andy > --b. > >> >> Signed-off-by: Andy Adamson <andros@xxxxxxxxxx> >> Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx> >> --- >> fs/nfsd/nfs4state.c | 12 ++++++------ >> 1 files changed, 6 insertions(+), 6 deletions(-) >> >> diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c >> index bfc808b..5aef525 100644 >> --- a/fs/nfsd/nfs4state.c >> +++ b/fs/nfsd/nfs4state.c >> @@ -1378,12 +1378,6 @@ nfsd4_create_session(struct svc_rqst *rqstp, >> } >> conf->cl_slot.sl_seqid++; >> } else if (unconf) { >> - if (!same_creds(&unconf->cl_cred, &rqstp->rq_cred) || >> - (ip_addr != unconf->cl_addr)) { >> - status = nfserr_clid_inuse; >> - goto out_cache; >> - } >> - >> slot = &unconf->cl_slot; >> status = check_slot_seqid(cr_ses->seqid, slot->sl_seqid, 0); >> if (status) { >> @@ -1392,6 +1386,12 @@ nfsd4_create_session(struct svc_rqst *rqstp, >> goto out; >> } >> >> + if (!same_creds(&unconf->cl_cred, &rqstp->rq_cred) || >> + (ip_addr != unconf->cl_addr)) { >> + status = nfserr_clid_inuse; >> + goto out_cache; >> + } >> + >> slot->sl_seqid++; /* from 0 to 1 */ >> move_to_confirmed(unconf); >> >> -- >> 1.6.3 >> > _______________________________________________ > pNFS mailing list > pNFS@xxxxxxxxxxxxx > http://linux-nfs.org/cgi-bin/mailman/listinfo/pnfs > -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html