Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 36943fa4 authored by Trond Myklebust's avatar Trond Myklebust
Browse files

NLM: nlm_alloc_call should not immediately fail on signal



Currently, nlm_alloc_call tests for a signal before it even tries to
allocate memory.
Fix it so that it tries at least once.

Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 47831f35
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -291,14 +291,15 @@ nlmclnt_alloc_call(void)
{
	struct nlm_rqst	*call;

	while (!signalled()) {
		call = (struct nlm_rqst *) kmalloc(sizeof(struct nlm_rqst), GFP_KERNEL);
		if (call) {
			memset(call, 0, sizeof(*call));
	for(;;) {
		call = kzalloc(sizeof(*call), GFP_KERNEL);
		if (call != NULL) {
			locks_init_lock(&call->a_args.lock.fl);
			locks_init_lock(&call->a_res.lock.fl);
			return call;
		}
		if (signalled())
			break;
		printk("nlmclnt_alloc_call: failed, waiting for memory\n");
		schedule_timeout_interruptible(5*HZ);
	}