Whamcloud - gitweb
LU-56 lnet: re-finalize failed ACK or routed message
authorLiang Zhen <liang@whamcloud.com>
Sun, 1 Jul 2012 14:21:39 +0000 (22:21 +0800)
committerOleg Drokin <green@whamcloud.com>
Tue, 3 Jul 2012 15:59:42 +0000 (11:59 -0400)
commit82e02a17c0c645a8d156e51b8d8da5eaa68b8f5b
tree8a8412252da920e9b816496a56f3667a8b4f4e65
parente1a285dfcc0bb70cc8c3dd0643c811a8c2cae57e
LU-56 lnet: re-finalize failed ACK or routed message

lnet_finalize should restart finalizing process for failed ACK
or failed forwarding, because message could be committed for
sending then failed before delivering to LND, i.e: ENOMEM,
in that case we can't just continue to call lnet_msg_decommit():

- The rule is message must decommit for sending first if
  the it's committed for both sending and receiving

- CPT for sending can be different with CPT for receiving,
  so we should return back to lnet_finalize() to make
  sure we are locking the correct partition.

Signed-off-by: Liang Zhen <liang@whamcloud.com>
Change-Id: I0b35434762225fcb0dccad7d23bcd63740484e0a
Reviewed-on: http://review.whamcloud.com/3252
Reviewed-by: Bobi Jam <bobijam@whamcloud.com>
Tested-by: Hudson
Reviewed-by: Doug Oucharek <doug@whamcloud.com>
Tested-by: Maloo <whamcloud.maloo@gmail.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lnet/lnet/lib-move.c
lnet/lnet/lib-msg.c