mirror of
https://github.com/torvalds/linux.git
synced 2024-12-27 21:33:00 +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)
|
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
|
|||||||
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)
|
|||||||
|
|
||||||
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,
|
|||||||
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 {
|
|||||||
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;
|
||||||
|
Loading…
Reference in New Issue
Block a user