On Tue, Jun 16, 2009 at 04:20:47AM +0300, Benny Halevy wrote: > From: Mike Sager <sager@xxxxxxxxxx> > > Verified that cthon and pynfs exchange id tests pass (except for the > two expected fails: EID8 and EID50) Thanks, applied. Though exchange_id still isn't right: for example, we're expiring the client in the conf && !same_verf case without checking the principal. If someone could take an hour or two, go through the 18.35.4 *very* carefully, and check all of this, it would be appreciated. --b. > > Signed-off-by: Mike Sager <sager@xxxxxxxxxx> > Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxxx> > --- > fs/nfsd/nfs4state.c | 18 ++++++------------ > 1 files changed, 6 insertions(+), 12 deletions(-) > > diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c > index c91b333..8ac5630 100644 > --- a/fs/nfsd/nfs4state.c > +++ b/fs/nfsd/nfs4state.c > @@ -1158,12 +1158,6 @@ nfsd4_exchange_id(struct svc_rqst *rqstp, > expire_client(conf); > goto out_new; > } > - if (ip_addr != conf->cl_addr && > - !(exid->flags & EXCHGID4_FLAG_UPD_CONFIRMED_REC_A)) { > - /* Client collision. 18.35.4 case 3 */ > - status = nfserr_clid_inuse; > - goto out; > - } > /* > * Set bit when the owner id and verifier map to an already > * confirmed client id (18.35.3). > @@ -1177,12 +1171,12 @@ nfsd4_exchange_id(struct svc_rqst *rqstp, > copy_verf(conf, &verf); > new = conf; > goto out_copy; > - } else { > - /* 18.35.4 case 7 */ > - if (exid->flags & EXCHGID4_FLAG_UPD_CONFIRMED_REC_A) { > - status = nfserr_noent; > - goto out; > - } > + } > + > + /* 18.35.4 case 7 */ > + if (exid->flags & EXCHGID4_FLAG_UPD_CONFIRMED_REC_A) { > + status = nfserr_noent; > + goto out; > } > > unconf = find_unconfirmed_client_by_str(dname, strhashval, true); > -- > 1.6.3 > -- 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