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 */
 
        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);
                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;
 }
 
                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;