From fa63b09847e00234a4cf7d9f2ee3b13d05689010 Mon Sep 17 00:00:00 2001 From: Oleg Drokin Date: Tue, 21 Jan 2014 13:53:26 -0500 Subject: [PATCH] LU-2818 mdt: Properly handle ENOMEM When osd_keys_init fails in mdt_lvbo_fill, properly bail out with error instead of asserting. Change-Id: I832742ed49cc7740d8e709bc4b87e5d5aa100d39 Signed-off-by: Oleg Drokin Reviewed-on: http://review.whamcloud.com/8947 Reviewed-by: Alex Zhuravlev Tested-by: Jenkins Reviewed-by: Emoly Liu Tested-by: Maloo --- lustre/mdt/mdt_lvb.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lustre/mdt/mdt_lvb.c b/lustre/mdt/mdt_lvb.c index 9698245..95ff632 100644 --- a/lustre/mdt/mdt_lvb.c +++ b/lustre/mdt/mdt_lvb.c @@ -122,10 +122,15 @@ static int mdt_lvbo_fill(struct ldlm_lock *lock, void *lvb, int lvblen) /* XXX create an env to talk to mdt stack. We should get this env from * ptlrpc_thread->t_env. */ rc = lu_env_init(&env, LCT_MD_THREAD); - LASSERT(rc == 0); + /* Likely ENOMEM */ + if (rc) + RETURN(rc); info = lu_context_key_get(&env.le_ctx, &mdt_thread_key); - LASSERT(info != NULL); + /* Likely ENOMEM */ + if (info == NULL) + GOTO(out, rc = -ENOMEM); + memset(info, 0, sizeof *info); info->mti_env = &env; info->mti_exp = lock->l_export; -- 1.8.3.1