[lustre-devel] [PATCH 055/151] lustre: misc: replace LASSERT() with BUILD_BUG_ON()

James Simmons jsimmons at infradead.org
Mon Sep 30 11:55:14 PDT 2019


From: Andreas Dilger <adilger at whamcloud.com>

Some code consistency checks are being done at runtime with
LASSERT() when they could be done at compile time with
BUILD_BUG_ON(). This might miss defects introduced into the
code if that particular code path is not exercised during testing.

Replace LASSERT() with BUILD_BUG_ON() in such cases.

WC-bug-id: https://jira.whamcloud.com/browse/LU-10046
Lustre-commit: 558c93dc56dc ("LU-10046 misc: replace LASSERT() with CLASSERT()")
Signed-off-by: Andreas Dilger <adilger at whamcloud.com>
Reviewed-on: https://review.whamcloud.com/29256
Reviewed-by: James Simmons <uja.ornl at yahoo.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin at intel.com>
Reviewed-by: John L. Hammond <jhammond at whamcloud.com>
Reviewed-by: Oleg Drokin <green at whamcloud.com>
Signed-off-by: James Simmons <jsimmons at infradead.org>
---
 fs/lustre/llite/dir.c           | 6 +++---
 fs/lustre/ptlrpc/client.c       | 2 +-
 fs/lustre/ptlrpc/lproc_ptlrpc.c | 1 +
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/fs/lustre/llite/dir.c b/fs/lustre/llite/dir.c
index ba53c1e..8968110 100644
--- a/fs/lustre/llite/dir.c
+++ b/fs/lustre/llite/dir.c
@@ -1229,9 +1229,9 @@ static long ll_dir_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
 
 		BUILD_BUG_ON(sizeof(struct lov_user_md_v3) <=
 			     sizeof(struct lov_comp_md_v1));
-		LASSERT(sizeof(lumv3) == sizeof(*lumv3p));
-		LASSERT(sizeof(lumv3.lmm_objects[0]) ==
-			sizeof(lumv3p->lmm_objects[0]));
+		BUILD_BUG_ON(sizeof(lumv3) != sizeof(*lumv3p));
+		BUILD_BUG_ON(sizeof(lumv3.lmm_objects[0]) !=
+			     sizeof(lumv3p->lmm_objects[0]));
 		/* first try with v1 which is smaller than v3 */
 		if (copy_from_user(lumv1, lumv1p, sizeof(*lumv1)))
 			return -EFAULT;
diff --git a/fs/lustre/ptlrpc/client.c b/fs/lustre/ptlrpc/client.c
index fc909a8..e0b2b91 100644
--- a/fs/lustre/ptlrpc/client.c
+++ b/fs/lustre/ptlrpc/client.c
@@ -2934,7 +2934,7 @@ int ptlrpc_replay_req(struct ptlrpc_request *req)
 
 	LASSERT(req->rq_import->imp_state == LUSTRE_IMP_REPLAY);
 
-	LASSERT(sizeof(*aa) <= sizeof(req->rq_async_args));
+	BUILD_BUG_ON(sizeof(*aa) > sizeof(req->rq_async_args));
 	aa = ptlrpc_req_async_args(req);
 	memset(aa, 0, sizeof(*aa));
 
diff --git a/fs/lustre/ptlrpc/lproc_ptlrpc.c b/fs/lustre/ptlrpc/lproc_ptlrpc.c
index bc5dc3f..937a413 100644
--- a/fs/lustre/ptlrpc/lproc_ptlrpc.c
+++ b/fs/lustre/ptlrpc/lproc_ptlrpc.c
@@ -449,6 +449,7 @@ static void nrs_policy_get_info_locked(struct ptlrpc_nrs_policy *policy,
 {
 	assert_spin_locked(&policy->pol_nrs->nrs_lock);
 
+	BUILD_BUG_ON(sizeof(info->pi_arg) != sizeof(policy->pol_arg));
 	memcpy(info->pi_name, policy->pol_desc->pd_name, NRS_POL_NAME_MAX);
 
 	info->pi_fallback = !!(policy->pol_flags & PTLRPC_NRS_FL_FALLBACK);
-- 
1.8.3.1



More information about the lustre-devel mailing list