Skip to content

Commit

Permalink
lockd: remove SIGKILL handling
Browse files Browse the repository at this point in the history
lockd allows SIGKILL and responds by dropping all locks and restarting
the grace period.  This functionality has been present since 2.1.32 when
lockd was added to Linux.

This functionality is undocumented and most likely added as a useful
debug aid.  When there is a need to drop locks, the better approach is
to use /proc/fs/nfsd/unlock_*.

This patch removes SIGKILL handling as part of preparation for removing
all signal handling from sunrpc service threads.

Signed-off-by: NeilBrown <[email protected]>
Reviewed-by: Jeff Layton <[email protected]>
Signed-off-by: Chuck Lever <[email protected]>
  • Loading branch information
neilbrown authored and chucklever committed Aug 29, 2023
1 parent de8d38c commit 8db14ca
Showing 1 changed file with 0 additions and 24 deletions.
24 changes: 0 additions & 24 deletions fs/lockd/svc.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@

#define NLMDBG_FACILITY NLMDBG_SVC
#define LOCKD_BUFSIZE (1024 + NLMSVC_XDRSIZE)
#define ALLOWED_SIGS (sigmask(SIGKILL))

static struct svc_program nlmsvc_program;

Expand Down Expand Up @@ -111,19 +110,6 @@ static void set_grace_period(struct net *net)
schedule_delayed_work(&ln->grace_period_end, grace_period);
}

static void restart_grace(void)
{
if (nlmsvc_ops) {
struct net *net = &init_net;
struct lockd_net *ln = net_generic(net, lockd_net_id);

cancel_delayed_work_sync(&ln->grace_period_end);
locks_end_grace(&ln->lockd_manager);
nlmsvc_invalidate_all();
set_grace_period(net);
}
}

/*
* This is the lockd kernel thread
*/
Expand All @@ -138,9 +124,6 @@ lockd(void *vrqstp)
/* try_to_freeze() is called from svc_recv() */
set_freezable();

/* Allow SIGKILL to tell lockd to drop all of its locks */
allow_signal(SIGKILL);

dprintk("NFS locking service started (ver " LOCKD_VERSION ").\n");

/*
Expand All @@ -154,12 +137,6 @@ lockd(void *vrqstp)
/* update sv_maxconn if it has changed */
rqstp->rq_server->sv_maxconn = nlm_max_connections;

if (signalled()) {
flush_signals(current);
restart_grace();
continue;
}

timeout = nlmsvc_retry_blocked();

/*
Expand All @@ -174,7 +151,6 @@ lockd(void *vrqstp)

svc_process(rqstp);
}
flush_signals(current);
if (nlmsvc_ops)
nlmsvc_invalidate_all();
nlm_shutdown_hosts();
Expand Down

0 comments on commit 8db14ca

Please sign in to comment.