From: NeilBrown The cb_parsed field is only used by probe_callback, to determine whether the callback information has been filled in by setclientid. But there is no way that probe_callback() can be called without that having already happened, so that check is superfluous, as is cb_parsed. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton --- fs/nfsd/nfs4callback.c | 4 +--- fs/nfsd/nfs4state.c | 5 +---- include/linux/nfsd/state.h | 1 - 3 files changed, 2 insertions(+), 8 deletions(-) diff -puN fs/nfsd/nfs4callback.c~nfsd4-remove-cb_parsed fs/nfsd/nfs4callback.c --- 25/fs/nfsd/nfs4callback.c~nfsd4-remove-cb_parsed Thu Jun 2 16:25:35 2005 +++ 25-akpm/fs/nfsd/nfs4callback.c Thu Jun 2 16:25:35 2005 @@ -386,9 +386,7 @@ nfsd4_probe_callback(struct nfs4_client char hostname[32]; int status; - dprintk("NFSD: probe_callback. cb_parsed %d cb_set %d\n", - cb->cb_parsed, atomic_read(&cb->cb_set)); - if (!cb->cb_parsed || atomic_read(&cb->cb_set)) + if (atomic_read(&cb->cb_set)) return; /* Initialize address */ diff -puN fs/nfsd/nfs4state.c~nfsd4-remove-cb_parsed fs/nfsd/nfs4state.c --- 25/fs/nfsd/nfs4state.c~nfsd4-remove-cb_parsed Thu Jun 2 16:25:35 2005 +++ 25-akpm/fs/nfsd/nfs4state.c Thu Jun 2 16:25:35 2005 @@ -377,7 +377,6 @@ create_client(struct xdr_netobj name, ch memcpy(clp->cl_recdir, recdir, HEXDIR_LEN); atomic_set(&clp->cl_count, 1); atomic_set(&clp->cl_callback.cb_set, 0); - clp->cl_callback.cb_parsed = 0; INIT_LIST_HEAD(&clp->cl_idhash); INIT_LIST_HEAD(&clp->cl_strhash); INIT_LIST_HEAD(&clp->cl_openowners); @@ -620,14 +619,12 @@ gen_callback(struct nfs4_client *clp, st goto out_err; cb->cb_prog = se->se_callback_prog; cb->cb_ident = se->se_callback_ident; - cb->cb_parsed = 1; return; out_err: printk(KERN_INFO "NFSD: this client (clientid %08x/%08x) " "will not receive delegations\n", clp->cl_clientid.cl_boot, clp->cl_clientid.cl_id); - cb->cb_parsed = 0; return; } @@ -872,7 +869,7 @@ nfsd4_setclientid_confirm(struct svc_rqs else { /* XXX: We just turn off callbacks until we can handle * change request correctly. */ - conf->cl_callback.cb_parsed = 0; + atomic_set(&conf->cl_callback.cb_set, 0); gen_confirm(conf); expire_client(unconf); status = nfs_ok; diff -puN include/linux/nfsd/state.h~nfsd4-remove-cb_parsed include/linux/nfsd/state.h --- 25/include/linux/nfsd/state.h~nfsd4-remove-cb_parsed Thu Jun 2 16:25:35 2005 +++ 25-akpm/include/linux/nfsd/state.h Thu Jun 2 16:25:35 2005 @@ -92,7 +92,6 @@ struct nfs4_delegation { /* client delegation callback info */ struct nfs4_callback { /* SETCLIENTID info */ - u32 cb_parsed; /* addr parsed */ u32 cb_addr; unsigned short cb_port; u32 cb_prog; _