mirror of
https://github.com/torvalds/linux.git
synced 2024-12-26 12:52:30 +00:00
nfsd-6.9 fixes:
- Revert some backchannel fixes that went into v6.9-rc -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEKLLlsBKG3yQ88j7+M2qzM29mf5cFAmYqZecACgkQM2qzM29m f5fOPhAAlxsB8ThAAyg+vOMeR6lxutEjPzez+U4M3N1s8dj9eMmcx8s6DPxsvfTS ExhcqxauCEwh9q+yZQ5ismWiE43Gvf39tvKGXzH30oM4v8xYo9nzxi6w9mEGyqR+ bkpbvbpuCfSeVY4WXD2rFI8DMh1G8PM9llue2QVLWPny2y5K2gAsbinpV/QQtdgp LEwhnGcX2ZmSh9yd7aGiOOO18CHU9rMygcb4XDzmwWggO8eCrElWbp4x8yuZJFAD OzuIx00WYny00rlMpZUyZ67hhg0+KcGQVldhr+A8f0K1baFCfW4QDq2T3RGTonoe DWdDGW7zwBbBw/rg4NUhdIZ9CArml9bB8ohPsaGr99e/95mtpSnXoEDJvKYgsFVE QembV7zPZqzEjtrR6g/tdf8/g1yRRwUMLze+RLjzz70TohLKvj7+qHCHirNMCMVE +HXvEdPKCzdZ24YST2wDh6sQ571ka6TX8fL6gYU8O+w+fiitLkEVXGE7KDJvynkm bsoJxTtbTuFleaW79d51VpIuiW1uyqKJrD1RnwDlMpp+HDtUnoVXU5SfGnmMp4KG Tz9Hx7hgFthXpajDpyzgLMnYVJ8IvXnoQaOp97mqFe/jSktXfslDdsj/R5ZAjZHO SfViZ8hjyoxrna7bPh250tSCb/S3qljhsIOc/3tAl8nPWGLoV28= =O2Ox -----END PGP SIGNATURE----- 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"
This commit is contained in:
commit
e33c4963bf
@ -983,15 +983,7 @@ static struct workqueue_struct *callback_wq;
|
||||
static bool nfsd4_queue_cb(struct nfsd4_callback *cb)
|
||||
{
|
||||
trace_nfsd_cb_queue(cb->cb_clp, cb);
|
||||
return queue_delayed_work(callback_wq, &cb->cb_work, 0);
|
||||
}
|
||||
|
||||
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));
|
||||
return queue_work(callback_wq, &cb->cb_work);
|
||||
}
|
||||
|
||||
static void nfsd41_cb_inflight_begin(struct nfs4_client *clp)
|
||||
@ -1490,7 +1482,7 @@ static void
|
||||
nfsd4_run_cb_work(struct work_struct *work)
|
||||
{
|
||||
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 rpc_clnt *clnt;
|
||||
int flags;
|
||||
@ -1502,16 +1494,8 @@ nfsd4_run_cb_work(struct work_struct *work)
|
||||
|
||||
clnt = clp->cl_cb_client;
|
||||
if (!clnt) {
|
||||
if (test_bit(NFSD4_CLIENT_CB_KILL, &clp->cl_flags))
|
||||
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);
|
||||
}
|
||||
/* Callback channel broken, or client killed; give up: */
|
||||
nfsd41_destroy_cb(cb);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -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_resp = cb;
|
||||
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_need_restart = false;
|
||||
cb->cb_holds_slot = false;
|
||||
|
@ -68,7 +68,7 @@ struct nfsd4_callback {
|
||||
struct nfs4_client *cb_clp;
|
||||
struct rpc_message cb_msg;
|
||||
const struct nfsd4_callback_ops *cb_ops;
|
||||
struct delayed_work cb_work;
|
||||
struct work_struct cb_work;
|
||||
int cb_seq_status;
|
||||
int cb_status;
|
||||
bool cb_need_restart;
|
||||
|
Loading…
Reference in New Issue
Block a user