in ptlrpc_set_wait, the bulk is not unregistered if the reply was unregistered
asynchronously, which will cause "ptlrpc_set_wait" to run into dead loop
Change-Id: Ic79ae29c79be015269bb2b9bb80b5b4dd30be78d
Signed-off-by: Hongchao Zhang <hongchao.zhang@whamcloud.com>
Reviewed-on: http://review.whamcloud.com/413
Tested-by: Hudson
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Johann Lombardi <johann@whamcloud.com>
/* This moves to "unregistering" phase we need to wait for
* reply unlink. */
/* This moves to "unregistering" phase we need to wait for
* reply unlink. */
- if (!unregistered && !ptlrpc_unregister_reply(req, 1))
+ if (!unregistered && !ptlrpc_unregister_reply(req, 1)) {
+ /* start async bulk unlink too */
+ ptlrpc_unregister_bulk(req, 1);
if (!ptlrpc_unregister_bulk(req, 1))
continue;
if (!ptlrpc_unregister_bulk(req, 1))
continue;