diff options
| author | Ilya Dryomov <idryomov@gmail.com> | 2015-10-11 19:38:00 +0200 |
|---|---|---|
| committer | Moyster <oysterized@gmail.com> | 2016-08-26 20:46:25 +0200 |
| commit | 1dff4a87b3a8d5060a952173ffc7172fcaf2a325 (patch) | |
| tree | c3192b71fa6e915bc4d1278b912e25dc590bf03f /scripts | |
| parent | f520c16bccc50a998eb7b5a0e6b87c11bf2b774f (diff) | |
rbd: prevent kernel stack blow up on rbd map
commit 6d69bb536bac0d403d83db1ca841444981b280cd upstream.
Mapping an image with a long parent chain (e.g. image foo, whose parent
is bar, whose parent is baz, etc) currently leads to a kernel stack
overflow, due to the following recursion in the reply path:
rbd_osd_req_callback()
rbd_obj_request_complete()
rbd_img_obj_callback()
rbd_img_parent_read_callback()
rbd_obj_request_complete()
...
Limit the parent chain to 16 images, which is ~5K worth of stack. When
the above recursion is eliminated, this limit can be lifted.
Fixes: http://tracker.ceph.com/issues/12538
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
[idryomov@gmail.com: backport to 3.10: rbd_dev->opts, context]
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Stefan Guendhoer <stefan@guendhoer.com>
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions
