]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - fs/nfsd/nfs4callback.c
Merge tag 'pci-v4.5-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci
[karo-tx-linux.git] / fs / nfsd / nfs4callback.c
index e7f50c4081d60c404a642fa18d8a17be97bfe83f..7389cb1d7409cf16c31b041d88ae59cbe09d5322 100644 (file)
@@ -792,12 +792,16 @@ static void warn_no_callback_path(struct nfs4_client *clp, int reason)
 
 static void nfsd4_mark_cb_down(struct nfs4_client *clp, int reason)
 {
+       if (test_bit(NFSD4_CLIENT_CB_UPDATE, &clp->cl_flags))
+               return;
        clp->cl_cb_state = NFSD4_CB_DOWN;
        warn_no_callback_path(clp, reason);
 }
 
 static void nfsd4_mark_cb_fault(struct nfs4_client *clp, int reason)
 {
+       if (test_bit(NFSD4_CLIENT_CB_UPDATE, &clp->cl_flags))
+               return;
        clp->cl_cb_state = NFSD4_CB_FAULT;
        warn_no_callback_path(clp, reason);
 }
@@ -1143,7 +1147,7 @@ nfsd4_run_cb_work(struct work_struct *work)
 }
 
 void nfsd4_init_cb(struct nfsd4_callback *cb, struct nfs4_client *clp,
-               struct nfsd4_callback_ops *ops, enum nfsd4_cb_op op)
+               const struct nfsd4_callback_ops *ops, enum nfsd4_cb_op op)
 {
        cb->cb_clp = clp;
        cb->cb_msg.rpc_proc = &nfs4_cb_procedures[op];