Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-12218 ptlrpc: Bulk assertion fails on -ENOMEM
[fs/lustre-release.git]
/
lustre
/
ptlrpc
/
client.c
diff --git
a/lustre/ptlrpc/client.c
b/lustre/ptlrpc/client.c
index
064c468
..
8ba71f6
100644
(file)
--- a/
lustre/ptlrpc/client.c
+++ b/
lustre/ptlrpc/client.c
@@
-3318,7
+3318,14
@@
void ptlrpc_set_bulk_mbits(struct ptlrpc_request *req)
old_mbits, req->rq_mbits);
} else if (!(lustre_msg_get_flags(req->rq_reqmsg) & MSG_REPLAY)) {
/* Request being sent first time, use xid as matchbits. */
old_mbits, req->rq_mbits);
} else if (!(lustre_msg_get_flags(req->rq_reqmsg) & MSG_REPLAY)) {
/* Request being sent first time, use xid as matchbits. */
- req->rq_mbits = req->rq_xid;
+ if (OCD_HAS_FLAG(&bd->bd_import->imp_connect_data, BULK_MBITS)
+ || req->rq_mbits == 0) {
+ req->rq_mbits = req->rq_xid;
+ } else {
+ int total_md = (bd->bd_iov_count + LNET_MAX_IOV - 1) /
+ LNET_MAX_IOV;
+ req->rq_mbits -= total_md - 1;
+ }
} else {
/* Replay request, xid and matchbits have already been
* correctly assigned. */
} else {
/* Replay request, xid and matchbits have already been
* correctly assigned. */