From c535d7a4021e3c520246bdde118be97414938266 Mon Sep 17 00:00:00 2001 From: Di Wang Date: Mon, 25 Sep 2017 20:25:07 -0400 Subject: [PATCH] LU-9983 osp: align the OSP request size by 4k Let's align the OSP request size by 4k, otherwise OUT might get incorrect out requests. Signed-off-by: Di Wang Change-Id: Id5c16b031dcb16d764c4e4f325f51b9ecf454533 Reviewed-on: https://review.whamcloud.com/29208 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger --- lustre/include/lustre_update.h | 1 - lustre/osp/osp_trans.c | 12 +++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lustre/include/lustre_update.h b/lustre/include/lustre_update.h index bed00f9..eb1f139 100644 --- a/lustre/include/lustre_update.h +++ b/lustre/include/lustre_update.h @@ -34,7 +34,6 @@ #include #include -#define OUT_UPDATE_INIT_BUFFER_SIZE 4096 #define OUT_UPDATE_REPLY_SIZE 4096 #define OUT_BULK_BUFFER_SIZE 4096 diff --git a/lustre/osp/osp_trans.c b/lustre/osp/osp_trans.c index 498ed18..5b7f694 100644 --- a/lustre/osp/osp_trans.c +++ b/lustre/osp/osp_trans.c @@ -131,11 +131,13 @@ int osp_object_update_request_create(struct osp_update_request *our, if (ours == NULL) return -ENOMEM; - if (size < OUT_UPDATE_INIT_BUFFER_SIZE) - size = OUT_UPDATE_INIT_BUFFER_SIZE; - + /* Since this buffer will be put on wire, let's + * align the buffer size to PAGE_SIZE to avoid + * trouble. + */ + LASSERT(size > 0); + size = ((size - 1) | (PAGE_SIZE - 1)) + 1; ours->ours_req = object_update_request_alloc(size); - if (IS_ERR(ours->ours_req)) { OBD_FREE_PTR(ours); return -ENOMEM; @@ -199,7 +201,7 @@ struct osp_update_request *osp_update_request_create(struct dt_device *dt) INIT_LIST_HEAD(&our->our_invalidate_cb_list); spin_lock_init(&our->our_list_lock); - rc = osp_object_update_request_create(our, OUT_UPDATE_INIT_BUFFER_SIZE); + rc = osp_object_update_request_create(our, PAGE_SIZE); if (rc != 0) { OBD_FREE_PTR(our); return ERR_PTR(rc); -- 1.8.3.1