From 6765d78583a7b144810e63ce8aa1c05d27cb8189 Mon Sep 17 00:00:00 2001 From: Alex Zhuravlev Date: Sat, 5 Dec 2015 08:57:40 +0300 Subject: [PATCH] LU-7408 target: declare write for reply data declare reply_data at max possible offset - this ensures enough credits reserved. Signed-off-by: Alex Zhuravlev Change-Id: I08466452e1e95b803f316abae777a8c8f4a8626e Reviewed-on: http://review.whamcloud.com/17086 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Jinshan Xiong Reviewed-by: Oleg Drokin --- lustre/target/tgt_lastrcvd.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lustre/target/tgt_lastrcvd.c b/lustre/target/tgt_lastrcvd.c index 39b697c..0c9cc87 100644 --- a/lustre/target/tgt_lastrcvd.c +++ b/lustre/target/tgt_lastrcvd.c @@ -1722,6 +1722,18 @@ int tgt_txn_start_cb(const struct lu_env *env, struct thandle *th, if (rc) return rc; + if (tgt_is_multimodrpcs_client(tsi->tsi_exp)) { + tti->tti_off = atomic_read(&tgt->lut_num_clients) * 8 + * sizeof(struct lsd_reply_data); + tti->tti_buf.lb_buf = NULL; + tti->tti_buf.lb_len = sizeof(struct lsd_reply_data); + dto = dt_object_locate(tgt->lut_reply_data, th->th_dev); + rc = dt_declare_record_write(env, dto, &tti->tti_buf, + tti->tti_off, th); + if (rc) + return rc; + } + if (tsi->tsi_vbr_obj != NULL && !lu_object_remote(&tsi->tsi_vbr_obj->do_lu)) { dto = dt_object_locate(tsi->tsi_vbr_obj, th->th_dev); -- 1.8.3.1