lockd: nlmclnt_reclaim(): avoid stack overflow
authorTim Gardner <tim.gardner@canonical.com>
Wed, 13 Feb 2013 15:40:16 +0000 (08:40 -0700)
committerJ. Bruce Fields <bfields@redhat.com>
Fri, 15 Feb 2013 16:29:38 +0000 (11:29 -0500)
commitf25cc71e634edcf8a15bc60a48f2b5f3ec9fbb1d
treeb66f98dacd1c095dfded8ee673290230366dd8c8
parentdeb4534f4f3be7aea7d9d24c3b0d58f370cbf9ef
lockd: nlmclnt_reclaim(): avoid stack overflow

Even though nlmclnt_reclaim() is only one call into the stack frame,
928 bytes on the stack seems like a lot. Recode to dynamically
allocate the request structure once from within the reclaimer task,
then pass this pointer into nlmclnt_reclaim() for reuse on
subsequent calls.

smatch analysis:

fs/lockd/clntproc.c:620 nlmclnt_reclaim() warn: 'reqst' puts
 928 bytes on stack

Also remove redundant assignment of 0 after memset.

Cc: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/lockd/clntlock.c
fs/lockd/clntproc.c
include/linux/lockd/lockd.h