diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2013-11-13 02:24:36 +0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2013-11-13 03:56:57 +0400 |
commit | d07ba8422f1e58be94cc98a1f475946dc1b89f1b (patch) | |
tree | e83c021ca30a8625b7a4af139c2d7bf16bbfa348 /fs/nfs | |
parent | a6b31d18b02ff9d7915c5898c9b5ca41a798cd73 (diff) | |
download | linux-d07ba8422f1e58be94cc98a1f475946dc1b89f1b.tar.xz |
SUNRPC: Avoid deep recursion in rpc_release_client
In cases where an rpc client has a parent hierarchy, then
rpc_free_client may end up calling rpc_release_client() on the
parent, thus recursing back into rpc_free_client. If the hierarchy
is deep enough, then we can get into situations where the stack
simply overflows.
The fix is to have rpc_release_client() loop so that it can take
care of the parent rpc client hierarchy without needing to
recurse.
Reported-by: Jeff Layton <jlayton@redhat.com>
Reported-by: Weston Andros Adamson <dros@netapp.com>
Reported-by: Bruce Fields <bfields@fieldses.org>
Link: http://lkml.kernel.org/r/2C73011F-0939-434C-9E4D-13A1EB1403D7@netapp.com
Cc: stable@vger.kernel.org
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs')
0 files changed, 0 insertions, 0 deletions