Whamcloud - gitweb
LU-4462 mdt: don't apply mdt_object_fid() to ERR_PTRs 88/8788/3
authorJohn L. Hammond <john.hammond@intel.com>
Thu, 9 Jan 2014 19:09:49 +0000 (13:09 -0600)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 26 Mar 2014 00:14:46 +0000 (00:14 +0000)
In mdt_reconstruct_open(), mdt_reconstruct_create(), and
mdt_reconstruct_setattr() print the FID from the request rather than
applying mdt_object_fid() to a known ERR_PTR.

Signed-off-by: John L. Hammond <john.hammond@intel.com>
Change-Id: Ifb9365dbef1492d8fb5c7ff27d00f5155b0e7525
Reviewed-on: http://review.whamcloud.com/8788
Tested-by: Jenkins
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Mike Pershin <mike.pershin@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
lustre/mdt/mdt_open.c
lustre/mdt/mdt_recovery.c

index 85b7568..fc67526 100644 (file)
@@ -1085,18 +1085,19 @@ void mdt_reconstruct_open(struct mdt_thread_info *info,
                         mdt_export_evict(exp);
                         RETURN_EXIT;
                 }
                         mdt_export_evict(exp);
                         RETURN_EXIT;
                 }
-                child = mdt_object_find(env, mdt, rr->rr_fid2);
-                if (IS_ERR(child)) {
-                        rc = PTR_ERR(child);
-                        LCONSOLE_WARN("Child "DFID" lookup error %d."
-                                      " Evicting client %s with export %s.\n",
-                                      PFID(mdt_object_fid(child)), rc,
-                                      obd_uuid2str(&exp->exp_client_uuid),
-                                      obd_export_nid2str(exp));
-                        mdt_object_put(env, parent);
-                        mdt_export_evict(exp);
-                        RETURN_EXIT;
-                }
+
+               child = mdt_object_find(env, mdt, rr->rr_fid2);
+               if (IS_ERR(child)) {
+                       rc = PTR_ERR(child);
+                       LCONSOLE_WARN("cannot lookup child "DFID": rc = %d; "
+                                     "evicting client %s with export %s\n",
+                                     PFID(rr->rr_fid2), rc,
+                                     obd_uuid2str(&exp->exp_client_uuid),
+                                     obd_export_nid2str(exp));
+                       mdt_object_put(env, parent);
+                       mdt_export_evict(exp);
+                       RETURN_EXIT;
+               }
 
                if (unlikely(mdt_object_remote(child))) {
                        /* the child object was created on remote server */
 
                if (unlikely(mdt_object_remote(child))) {
                        /* the child object was created on remote server */
index 56635af..fba53bf 100644 (file)
@@ -249,19 +249,18 @@ static void mdt_reconstruct_create(struct mdt_thread_info *mti,
         if (req->rq_status)
                 return;
 
         if (req->rq_status)
                 return;
 
-        /* if no error, so child was created with requested fid */
-        child = mdt_object_find(mti->mti_env, mdt, mti->mti_rr.rr_fid2);
-        if (IS_ERR(child)) {
-                rc = PTR_ERR(child);
-                LCONSOLE_WARN("Child "DFID" lookup error %d."
-                              " Evicting client %s with export %s.\n",
-                              PFID(mdt_object_fid(child)), rc,
-                              obd_uuid2str(&exp->exp_client_uuid),
-                              obd_export_nid2str(exp));
-                mdt_export_evict(exp);
-                EXIT;
-                return;
-        }
+       /* if no error, so child was created with requested fid */
+       child = mdt_object_find(mti->mti_env, mdt, mti->mti_rr.rr_fid2);
+       if (IS_ERR(child)) {
+               rc = PTR_ERR(child);
+               LCONSOLE_WARN("cannot lookup child "DFID": rc = %d; "
+                             "evicting client %s with export %s\n",
+                             PFID(mti->mti_rr.rr_fid2), rc,
+                             obd_uuid2str(&exp->exp_client_uuid),
+                             obd_export_nid2str(exp));
+               mdt_export_evict(exp);
+               RETURN_EXIT;
+       }
 
         body = req_capsule_server_get(mti->mti_pill, &RMF_MDT_BODY);
         mti->mti_attr.ma_need = MA_INODE;
 
         body = req_capsule_server_get(mti->mti_pill, &RMF_MDT_BODY);
         mti->mti_attr.ma_need = MA_INODE;
@@ -290,6 +289,7 @@ static void mdt_reconstruct_setattr(struct mdt_thread_info *mti,
         struct mdt_device *mdt = mti->mti_mdt;
         struct mdt_object *obj;
         struct mdt_body *body;
         struct mdt_device *mdt = mti->mti_mdt;
         struct mdt_object *obj;
         struct mdt_body *body;
+       int rc;
 
         mdt_req_from_lcd(req, med->med_ted.ted_lcd);
         if (req->rq_status)
 
         mdt_req_from_lcd(req, med->med_ted.ted_lcd);
         if (req->rq_status)
@@ -297,17 +297,17 @@ static void mdt_reconstruct_setattr(struct mdt_thread_info *mti,
 
         body = req_capsule_server_get(mti->mti_pill, &RMF_MDT_BODY);
         obj = mdt_object_find(mti->mti_env, mdt, mti->mti_rr.rr_fid1);
 
         body = req_capsule_server_get(mti->mti_pill, &RMF_MDT_BODY);
         obj = mdt_object_find(mti->mti_env, mdt, mti->mti_rr.rr_fid1);
-        if (IS_ERR(obj)) {
-                int rc = PTR_ERR(obj);
-                LCONSOLE_WARN(""DFID" lookup error %d."
-                              " Evicting client %s with export %s.\n",
-                              PFID(mdt_object_fid(obj)), rc,
-                              obd_uuid2str(&exp->exp_client_uuid),
-                              obd_export_nid2str(exp));
-                mdt_export_evict(exp);
-                EXIT;
-                return;
-        }
+       if (IS_ERR(obj)) {
+               rc = PTR_ERR(obj);
+               LCONSOLE_WARN("cannot lookup "DFID": rc = %d; "
+                             "evicting client %s with export %s\n",
+                             PFID(mti->mti_rr.rr_fid1), rc,
+                             obd_uuid2str(&exp->exp_client_uuid),
+                             obd_export_nid2str(exp));
+               mdt_export_evict(exp);
+               RETURN_EXIT;
+       }
+
         mti->mti_attr.ma_need = MA_INODE;
         mti->mti_attr.ma_valid = 0;
        mdt_attr_get_complex(mti, obj, &mti->mti_attr);
         mti->mti_attr.ma_need = MA_INODE;
         mti->mti_attr.ma_valid = 0;
        mdt_attr_get_complex(mti, obj, &mti->mti_attr);