From: Oleg Drokin Date: Tue, 21 Jan 2014 18:53:26 +0000 (-0500) Subject: LU-2818 mdt: Properly handle ENOMEM X-Git-Tag: 2.5.1-RC1~32 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=36351838e2ec862d8e3f9cdf89bc9f12524b6c5b;p=fs%2Flustre-release.git 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 --- 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;