mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 05:04:09 +08:00
NLM: Remove the signal masking in nlmclnt_proc/nlmclnt_cancel
The signal masks have been rendered obsolete by the preceding patch. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
dc9d8d0481
commit
8ec7ff7444
@ -155,8 +155,6 @@ static void nlmclnt_release_lockargs(struct nlm_rqst *req)
|
||||
int nlmclnt_proc(struct nlm_host *host, int cmd, struct file_lock *fl)
|
||||
{
|
||||
struct nlm_rqst *call;
|
||||
sigset_t oldset;
|
||||
unsigned long flags;
|
||||
int status;
|
||||
|
||||
nlm_get_host(host);
|
||||
@ -168,22 +166,6 @@ int nlmclnt_proc(struct nlm_host *host, int cmd, struct file_lock *fl)
|
||||
/* Set up the argument struct */
|
||||
nlmclnt_setlockargs(call, fl);
|
||||
|
||||
/* Keep the old signal mask */
|
||||
spin_lock_irqsave(¤t->sighand->siglock, flags);
|
||||
oldset = current->blocked;
|
||||
|
||||
/* If we're cleaning up locks because the process is exiting,
|
||||
* perform the RPC call asynchronously. */
|
||||
if ((IS_SETLK(cmd) || IS_SETLKW(cmd))
|
||||
&& fl->fl_type == F_UNLCK
|
||||
&& (current->flags & PF_EXITING)) {
|
||||
sigfillset(¤t->blocked); /* Mask all signals */
|
||||
recalc_sigpending();
|
||||
|
||||
call->a_flags = RPC_TASK_ASYNC;
|
||||
}
|
||||
spin_unlock_irqrestore(¤t->sighand->siglock, flags);
|
||||
|
||||
if (IS_SETLK(cmd) || IS_SETLKW(cmd)) {
|
||||
if (fl->fl_type != F_UNLCK) {
|
||||
call->a_args.block = IS_SETLKW(cmd) ? 1 : 0;
|
||||
@ -198,11 +180,6 @@ int nlmclnt_proc(struct nlm_host *host, int cmd, struct file_lock *fl)
|
||||
fl->fl_ops->fl_release_private(fl);
|
||||
fl->fl_ops = NULL;
|
||||
|
||||
spin_lock_irqsave(¤t->sighand->siglock, flags);
|
||||
current->blocked = oldset;
|
||||
recalc_sigpending();
|
||||
spin_unlock_irqrestore(¤t->sighand->siglock, flags);
|
||||
|
||||
dprintk("lockd: clnt proc returns %d\n", status);
|
||||
return status;
|
||||
}
|
||||
@ -722,16 +699,6 @@ static const struct rpc_call_ops nlmclnt_unlock_ops = {
|
||||
static int nlmclnt_cancel(struct nlm_host *host, int block, struct file_lock *fl)
|
||||
{
|
||||
struct nlm_rqst *req;
|
||||
unsigned long flags;
|
||||
sigset_t oldset;
|
||||
int status;
|
||||
|
||||
/* Block all signals while setting up call */
|
||||
spin_lock_irqsave(¤t->sighand->siglock, flags);
|
||||
oldset = current->blocked;
|
||||
sigfillset(¤t->blocked);
|
||||
recalc_sigpending();
|
||||
spin_unlock_irqrestore(¤t->sighand->siglock, flags);
|
||||
|
||||
req = nlm_alloc_call(nlm_get_host(host));
|
||||
if (!req)
|
||||
@ -741,14 +708,7 @@ static int nlmclnt_cancel(struct nlm_host *host, int block, struct file_lock *fl
|
||||
nlmclnt_setlockargs(req, fl);
|
||||
req->a_args.block = block;
|
||||
|
||||
status = nlmclnt_async_call(req, NLMPROC_CANCEL, &nlmclnt_cancel_ops);
|
||||
|
||||
spin_lock_irqsave(¤t->sighand->siglock, flags);
|
||||
current->blocked = oldset;
|
||||
recalc_sigpending();
|
||||
spin_unlock_irqrestore(¤t->sighand->siglock, flags);
|
||||
|
||||
return status;
|
||||
return nlmclnt_async_call(req, NLMPROC_CANCEL, &nlmclnt_cancel_ops);
|
||||
}
|
||||
|
||||
static void nlmclnt_cancel_callback(struct rpc_task *task, void *data)
|
||||
|
Loading…
Reference in New Issue
Block a user