Whamcloud - gitweb
LU-6808 ptlrpc: properly set "rq_xid" for 4MB IO 73/22373/5
authorFan Yong <fan.yong@intel.com>
Mon, 4 Jul 2016 20:41:59 +0000 (04:41 +0800)
committerOleg Drokin <oleg.drokin@intel.com>
Tue, 13 Sep 2016 20:02:29 +0000 (20:02 +0000)
commitbb75072cb679bf52e00537c19e42f8e4e95255b6
tree1f8a1ced8182d7885b8561ef0a57a46cfd226dd0
parentf2892fda72897a8a264414c06e54751d127a5709
LU-6808 ptlrpc: properly set "rq_xid" for 4MB IO

The commit d099fdd6 replaced the "rq_xid" with "rq_mbits" as
the matchbits of bulk data transferring. To be interoperable
with old servers, it introduced the new connection flag:
OBD_CONNECT_BULK_MBITS. If the server does not support such
feature, then the "rq_xid" would be set the same value as
"rq_mbits". Unfortunately, it forgot to handle multiple bulk
operations, for example 4MB IO. If the new client wants to
make 4MB IO with old server, it may send a small "rq_xid" to
the old server, as to the old server will regard it as an 1MB
IO or 2MB IO. So the data transfer will not complete because
of only part of data transferred. Then the client will timeout
failure and retry again and again.

Test-Parameters: alwaysuploadlogs testlist=sanity envdefinitions=ONLY=224c ossjob=lustre-b2_7_fe mdsjob=lustre-b2_7_fe ossbuildno=95 mdsbuildno=95 mdsdistro=el6.7 ossdistro=el6.7
Signed-off-by: Fan Yong <fan.yong@intel.com>
Change-Id: I9b1c0de13674f16443bef2b454c491e6c72b8ab3
Reviewed-on: http://review.whamcloud.com/22373
Tested-by: Jenkins
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Liang Zhen <liang.zhen@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/ldlm/ldlm_lib.c
lustre/ptlrpc/client.c