numam-spdk/lib/bdev
Daniel Verkamp 2138676573 bdev: defer completions from within submit_request
If a blockdev module calls spdk_bdev_io_complete() within its
submit_request function, and the user's completion callback issues a new
I/O, it is possible to cause infinite recursion, consuming all available
stack space.

To avoid this, track whether a bdev_io is being processed by
submit_request, and if io_complete() is called in this case, defer the
completion via an event.

Change-Id: I6ccdb8ed4ee0d5738e6c9840d35431de52bd5fa2
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2017-01-13 12:37:54 -07:00
..
aio event: remove 'complete' parameter from poller_register 2017-01-05 11:57:18 -07:00
malloc bdev_module.h: move to spdk_internal/bdev.h 2017-01-05 11:57:18 -07:00
nvme bdev/nvme: do not split SGE callbacks on 2MB boundaries 2017-01-05 15:51:04 -07:00
rbd event: remove 'complete' parameter from poller_register 2017-01-05 11:57:18 -07:00
rpc bdev/rpc: add driver-specific data to get_bdevs 2016-11-21 12:35:57 -07:00
bdev.c bdev: defer completions from within submit_request 2017-01-13 12:37:54 -07:00
Makefile bdev: add get_bdevs RPC 2016-11-02 09:10:54 -07:00