Whamcloud - gitweb
LU-2818 mdt: Properly handle ENOMEM 47/8947/2
authorOleg Drokin <oleg.drokin@intel.com>
Tue, 21 Jan 2014 18:53:26 +0000 (13:53 -0500)
committerOleg Drokin <oleg.drokin@intel.com>
Thu, 23 Jan 2014 23:37:06 +0000 (23:37 +0000)
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 <oleg.drokin@intel.com>
Reviewed-on: http://review.whamcloud.com/8947
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Tested-by: Jenkins
Reviewed-by: Emoly Liu <emoly.liu@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
lustre/mdt/mdt_lvb.c

index 9698245..95ff632 100644 (file)
@@ -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);
        /* 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);
 
        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;
        memset(info, 0, sizeof *info);
        info->mti_env = &env;
        info->mti_exp = lock->l_export;