Commit e33c4963 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'nfsd-6.9-5' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux

Pull nfsd fixes from Chuck Lever:

 - Revert some backchannel fixes that went into v6.9-rc

* tag 'nfsd-6.9-5' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux:
  Revert "NFSD: Convert the callback workqueue to use delayed_work"
  Revert "NFSD: Reschedule CB operations when backchannel rpc_clnt is shut down"
parents f9e02329 8ddb7142
...@@ -983,15 +983,7 @@ static struct workqueue_struct *callback_wq; ...@@ -983,15 +983,7 @@ static struct workqueue_struct *callback_wq;
static bool nfsd4_queue_cb(struct nfsd4_callback *cb) static bool nfsd4_queue_cb(struct nfsd4_callback *cb)
{ {
trace_nfsd_cb_queue(cb->cb_clp, cb); trace_nfsd_cb_queue(cb->cb_clp, cb);
return queue_delayed_work(callback_wq, &cb->cb_work, 0); return queue_work(callback_wq, &cb->cb_work);
}
static void nfsd4_queue_cb_delayed(struct nfsd4_callback *cb,
unsigned long msecs)
{
trace_nfsd_cb_queue(cb->cb_clp, cb);
queue_delayed_work(callback_wq, &cb->cb_work,
msecs_to_jiffies(msecs));
} }
static void nfsd41_cb_inflight_begin(struct nfs4_client *clp) static void nfsd41_cb_inflight_begin(struct nfs4_client *clp)
...@@ -1490,7 +1482,7 @@ static void ...@@ -1490,7 +1482,7 @@ static void
nfsd4_run_cb_work(struct work_struct *work) nfsd4_run_cb_work(struct work_struct *work)
{ {
struct nfsd4_callback *cb = struct nfsd4_callback *cb =
container_of(work, struct nfsd4_callback, cb_work.work); container_of(work, struct nfsd4_callback, cb_work);
struct nfs4_client *clp = cb->cb_clp; struct nfs4_client *clp = cb->cb_clp;
struct rpc_clnt *clnt; struct rpc_clnt *clnt;
int flags; int flags;
...@@ -1502,16 +1494,8 @@ nfsd4_run_cb_work(struct work_struct *work) ...@@ -1502,16 +1494,8 @@ nfsd4_run_cb_work(struct work_struct *work)
clnt = clp->cl_cb_client; clnt = clp->cl_cb_client;
if (!clnt) { if (!clnt) {
if (test_bit(NFSD4_CLIENT_CB_KILL, &clp->cl_flags)) /* Callback channel broken, or client killed; give up: */
nfsd41_destroy_cb(cb); nfsd41_destroy_cb(cb);
else {
/*
* XXX: Ideally, we could wait for the client to
* reconnect, but I haven't figured out how
* to do that yet.
*/
nfsd4_queue_cb_delayed(cb, 25);
}
return; return;
} }
...@@ -1544,7 +1528,7 @@ void nfsd4_init_cb(struct nfsd4_callback *cb, struct nfs4_client *clp, ...@@ -1544,7 +1528,7 @@ void nfsd4_init_cb(struct nfsd4_callback *cb, struct nfs4_client *clp,
cb->cb_msg.rpc_argp = cb; cb->cb_msg.rpc_argp = cb;
cb->cb_msg.rpc_resp = cb; cb->cb_msg.rpc_resp = cb;
cb->cb_ops = ops; cb->cb_ops = ops;
INIT_DELAYED_WORK(&cb->cb_work, nfsd4_run_cb_work); INIT_WORK(&cb->cb_work, nfsd4_run_cb_work);
cb->cb_status = 0; cb->cb_status = 0;
cb->cb_need_restart = false; cb->cb_need_restart = false;
cb->cb_holds_slot = false; cb->cb_holds_slot = false;
......
...@@ -68,7 +68,7 @@ struct nfsd4_callback { ...@@ -68,7 +68,7 @@ struct nfsd4_callback {
struct nfs4_client *cb_clp; struct nfs4_client *cb_clp;
struct rpc_message cb_msg; struct rpc_message cb_msg;
const struct nfsd4_callback_ops *cb_ops; const struct nfsd4_callback_ops *cb_ops;
struct delayed_work cb_work; struct work_struct cb_work;
int cb_seq_status; int cb_seq_status;
int cb_status; int cb_status;
bool cb_need_restart; bool cb_need_restart;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment