Skip to content

Commit e33c496

Browse files
committed
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"
2 parents f9e0232 + 8ddb714 commit e33c496

File tree

2 files changed

+6
-22
lines changed

2 files changed

+6
-22
lines changed

fs/nfsd/nfs4callback.c

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -983,15 +983,7 @@ static struct workqueue_struct *callback_wq;
983983
static bool nfsd4_queue_cb(struct nfsd4_callback *cb)
984984
{
985985
trace_nfsd_cb_queue(cb->cb_clp, cb);
986-
return queue_delayed_work(callback_wq, &cb->cb_work, 0);
987-
}
988-
989-
static void nfsd4_queue_cb_delayed(struct nfsd4_callback *cb,
990-
unsigned long msecs)
991-
{
992-
trace_nfsd_cb_queue(cb->cb_clp, cb);
993-
queue_delayed_work(callback_wq, &cb->cb_work,
994-
msecs_to_jiffies(msecs));
986+
return queue_work(callback_wq, &cb->cb_work);
995987
}
996988

997989
static void nfsd41_cb_inflight_begin(struct nfs4_client *clp)
@@ -1490,7 +1482,7 @@ static void
14901482
nfsd4_run_cb_work(struct work_struct *work)
14911483
{
14921484
struct nfsd4_callback *cb =
1493-
container_of(work, struct nfsd4_callback, cb_work.work);
1485+
container_of(work, struct nfsd4_callback, cb_work);
14941486
struct nfs4_client *clp = cb->cb_clp;
14951487
struct rpc_clnt *clnt;
14961488
int flags;
@@ -1502,16 +1494,8 @@ nfsd4_run_cb_work(struct work_struct *work)
15021494

15031495
clnt = clp->cl_cb_client;
15041496
if (!clnt) {
1505-
if (test_bit(NFSD4_CLIENT_CB_KILL, &clp->cl_flags))
1506-
nfsd41_destroy_cb(cb);
1507-
else {
1508-
/*
1509-
* XXX: Ideally, we could wait for the client to
1510-
* reconnect, but I haven't figured out how
1511-
* to do that yet.
1512-
*/
1513-
nfsd4_queue_cb_delayed(cb, 25);
1514-
}
1497+
/* Callback channel broken, or client killed; give up: */
1498+
nfsd41_destroy_cb(cb);
15151499
return;
15161500
}
15171501

@@ -1544,7 +1528,7 @@ void nfsd4_init_cb(struct nfsd4_callback *cb, struct nfs4_client *clp,
15441528
cb->cb_msg.rpc_argp = cb;
15451529
cb->cb_msg.rpc_resp = cb;
15461530
cb->cb_ops = ops;
1547-
INIT_DELAYED_WORK(&cb->cb_work, nfsd4_run_cb_work);
1531+
INIT_WORK(&cb->cb_work, nfsd4_run_cb_work);
15481532
cb->cb_status = 0;
15491533
cb->cb_need_restart = false;
15501534
cb->cb_holds_slot = false;

fs/nfsd/state.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ struct nfsd4_callback {
6868
struct nfs4_client *cb_clp;
6969
struct rpc_message cb_msg;
7070
const struct nfsd4_callback_ops *cb_ops;
71-
struct delayed_work cb_work;
71+
struct work_struct cb_work;
7272
int cb_seq_status;
7373
int cb_status;
7474
bool cb_need_restart;

0 commit comments

Comments
 (0)