lightnvm: refactor end_io functions for sync
authorMatias Bjørling <m@bjorling.me>
Tue, 12 Jan 2016 06:49:21 +0000 (07:49 +0100)
committerJens Axboe <axboe@fb.com>
Tue, 12 Jan 2016 15:21:16 +0000 (08:21 -0700)
commit91276162de9476b8ff32d9452e849210e5dd09e9
tree53337c60f7d863b1ab733f9bcd4964da818f9057
parentabd805ec9f51f37db9da63dda44c3f4b4ae8ad57
lightnvm: refactor end_io functions for sync

To implement sync I/O support within the LightNVM core, the end_io
functions are refactored to take an end_io function pointer instead of
testing for initialized media manager, followed by calling its end_io
function.

Sync I/O can then be implemented using a callback that signal I/O
completion. This is similar to the logic found in blk_to_execute_io().
By implementing it this way, the underlying device I/Os submission logic
is abstracted away from core, targets, and media managers.

Signed-off-by: Matias Bjørling <m@bjorling.me>
Signed-off-by: Jens Axboe <axboe@fb.com>
drivers/block/null_blk.c
drivers/lightnvm/core.c
drivers/lightnvm/gennvm.c
drivers/lightnvm/rrpc.c
drivers/nvme/host/lightnvm.c
include/linux/lightnvm.h