https://github.com/torvalds/linux
Revision 6d69bb536bac0d403d83db1ca841444981b280cd authored by Ilya Dryomov on 11 October 2015, 17:38:00 UTC, committed by Ilya Dryomov on 23 October 2015, 16:37:24 UTC
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

Cc: stable@vger.kernel.org # 3.10+, needs backporting for < 4.2
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Josh Durgin <jdurgin@redhat.com>
1 parent 1f2c665
History
Tip revision: 6d69bb536bac0d403d83db1ca841444981b280cd authored by Ilya Dryomov on 11 October 2015, 17:38:00 UTC
rbd: prevent kernel stack blow up on rbd map
Tip revision: 6d69bb5
File Mode Size
Kconfig -rw-r--r-- 1.7 KB
Makefile -rw-r--r-- 3.6 KB
system_certificates.S -rw-r--r-- 535 bytes
system_keyring.c -rw-r--r-- 4.0 KB

back to top