rdma engine graceful teardown
For rdma ioengine's one side operation, RDMA_WRITE or RDMA_READ,
server side gets a message from client side that the task is finished.
In previous version, the server simply exit() in td_io_commit() which
causes segmentation fault in thread mode or process hanging in process
mode. This patch achieves graceful tear down by setting up `td->done`
as UDP engine did.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/engines/rdma.c b/engines/rdma.c
index 54fd194..79d72d2 100644
--- a/engines/rdma.c
+++ b/engines/rdma.c
@@ -674,7 +674,8 @@
rdma_poll_wait(td, IBV_WC_RECV);
dprint(FD_IO, "fio: recv FINISH message\n");
- exit(0);
+ td->done = 1;
+ return 0;
}
return i;