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: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
47831f35b8
commit
36943fa4b2
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue