From 690343b8a60ef066178ed75ede62e0b89dfc66ac Mon Sep 17 00:00:00 2001 From: Trond Myklebust Date: Mon, 20 Mar 2006 13:44:05 -0500 Subject: [PATCH] --- yaml --- r: 23859 b: refs/heads/master c: 36943fa4b2701b9ef2d60084c85ecbe634aec252 h: refs/heads/master i: 23857: 2ef4ae75cfb527dc6be8e514d7c98e1151c274ea 23855: 7981f51b750d23459f5de5b4937c3f10c2cd5626 v: v3 --- [refs] | 2 +- trunk/fs/lockd/clntproc.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 8318a06c62fb..3c04848a6b32 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 47831f35b83e43c804215712dd0c834c92e8a441 +refs/heads/master: 36943fa4b2701b9ef2d60084c85ecbe634aec252 diff --git a/trunk/fs/lockd/clntproc.c b/trunk/fs/lockd/clntproc.c index 970b6a6aa337..615a988a92a7 100644 --- a/trunk/fs/lockd/clntproc.c +++ b/trunk/fs/lockd/clntproc.c @@ -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); }