提交 af38abfc 编写于 作者: V Vitaly Fertman 提交者: Greg Kroah-Hartman

staging/lustre/ptlrpc: Early Reply vs Reply MDunlink

A race between unregister_reply & early reply.
When buffers are busy for the early transfer, they cannon be unlinked
by unregister_reply, so the RPC gets into UNREGISTERING state. The
coming reply_in_callback for the early RPC already has unlinked flag
set due to previous mdunlink attempt, but we handle it properly only
for UNILNK event, whereas this is PUT in this case.
Signed-off-by: NVitaly Fertman <vitaly.fertman@seagate.com>
Seagate-bug-id: MRP-3323
Reviewed-by: NAlexey Leonidovich Lyashkov <alexey.lyashkov@seagate.com>
Reviewed-by: NAndriy Skulysh <andriy.skulysh@seagate.com>
Tested-by: NParinay Vijayprakash Kondekar <parinay.kondekar@seagate.com>
Reviewed-on: http://review.whamcloud.com/18934
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-7434Reviewed-by: NChris Horn <hornc@cray.com>
Reviewed-by: NAndreas Dilger <andreas.dilger@intel.com>
Signed-off-by: NOleg Drokin <green@linuxhacker.ru>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 9faa2ade
......@@ -137,7 +137,8 @@ void reply_in_callback(lnet_event_t *ev)
req->rq_early_count++; /* number received, client side */
if (req->rq_replied) /* already got the real reply */
/* already got the real reply or buffers are already unlinked */
if (req->rq_replied || req->rq_reply_unlinked == 1)
goto out_wake;
req->rq_early = 1;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册