From 8d53611e3f0c190ce75dba086b7dac1604d695ae Mon Sep 17 00:00:00 2001 From: adilger Date: Tue, 9 Mar 2004 09:36:08 +0000 Subject: [PATCH] Don't allocate zero-length LVBs on the MDS. Verified that all users of l_lvb_data check l_lvb_len != 0 before using, and tested of course. b=1012 --- lustre/ldlm/ldlm_lock.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lustre/ldlm/ldlm_lock.c b/lustre/ldlm/ldlm_lock.c index 0e7f0b0..b5b0e33 100644 --- a/lustre/ldlm/ldlm_lock.c +++ b/lustre/ldlm/ldlm_lock.c @@ -752,11 +752,13 @@ struct ldlm_lock *ldlm_lock_create(struct ldlm_namespace *ns, lock->l_completion_ast = completion; lock->l_glimpse_ast = glimpse; - lock->l_lvb_len = lvb_len; - OBD_ALLOC(lock->l_lvb_data, lvb_len); - if (lock->l_lvb_data == NULL) { - OBD_SLAB_FREE(lock, ldlm_lock_slab, sizeof(*lock)); - RETURN(NULL); + if (lvb_len) { + lock->l_lvb_len = lvb_len; + OBD_ALLOC(lock->l_lvb_data, lvb_len); + if (lock->l_lvb_data == NULL) { + OBD_SLAB_FREE(lock, ldlm_lock_slab, sizeof(*lock)); + RETURN(NULL); + } } RETURN(lock); -- 1.8.3.1