Whamcloud - gitweb
(1) some cleanup on code
authorhuanghua <huanghua>
Mon, 21 Aug 2006 08:58:22 +0000 (08:58 +0000)
committerhuanghua <huanghua>
Mon, 21 Aug 2006 08:58:22 +0000 (08:58 +0000)
(2) change mdt_object->mot_writecount into an "int"

lustre/mdt/mdt_handler.c
lustre/mdt/mdt_internal.h
lustre/mdt/mdt_lib.c
lustre/mdt/mdt_open.c
lustre/mdt/mdt_reint.c

index a837505..7370357 100644 (file)
@@ -68,7 +68,7 @@ unsigned long mdt_num_threads;
 struct mdt_handler {
         /* The name of this handler. */
         const char *mh_name;
-        /* Fail id for this handler, checked at the beginning of this handler.*/
+        /* Fail id for this handler, checked at the beginning of this handler*/
         int         mh_fail_id;
         /* Operation code for this handler */
         __u32       mh_opc;
@@ -158,7 +158,7 @@ static int mdt_statfs(struct mdt_thread_info *info)
         if (MDT_FAIL_CHECK(OBD_FAIL_MDS_STATFS_PACK)) {
                 result = -ENOMEM;
         } else {
-                osfs = req_capsule_server_get(&info->mti_pill, &RMF_OBD_STATFS);
+                osfs = req_capsule_server_get(&info->mti_pill,&RMF_OBD_STATFS);
                 /* XXX max_age optimisation is needed here. See mds_statfs */
                 result = next->md_ops->mdo_statfs(info->mti_ctxt,
                                                   next, &info->mti_sfs);
@@ -175,7 +175,7 @@ void mdt_pack_attr2body(struct mdt_body *b, const struct lu_attr *attr,
         b->valid |= OBD_MD_FLCTIME | OBD_MD_FLUID   |
                     OBD_MD_FLGID   | OBD_MD_FLTYPE  |
                     OBD_MD_FLMODE  | OBD_MD_FLNLINK | OBD_MD_FLFLAGS |
-                    OBD_MD_FLATIME | OBD_MD_FLMTIME ; /* added by huanghua */
+                    OBD_MD_FLATIME | OBD_MD_FLMTIME ;
 
         if (!S_ISREG(attr->la_mode))
                 b->valid |= OBD_MD_FLSIZE | OBD_MD_FLBLOCKS | OBD_MD_FLRDEV;
@@ -254,15 +254,12 @@ static int mdt_getattr_internal(struct mdt_thread_info *info,
         if (mdt_body_has_lov(la, reqbody)) {
                 if (ma->ma_valid & MA_LOV) {
                         LASSERT(ma->ma_lmm_size);
-                        CDEBUG(D_INODE, "packing ea for "DFID"\n",
-                                        PFID(mdt_object_fid(o)));
                         mdt_dump_lmm(D_INFO, ma->ma_lmm);
                         repbody->eadatasize = ma->ma_lmm_size;
                         if (S_ISDIR(la->la_mode))
                                 repbody->valid |= OBD_MD_FLDIREA;
                         else
                                 repbody->valid |= OBD_MD_FLEASIZE;
-
                 }
         } else if (S_ISLNK(la->la_mode) &&
                           reqbody->valid & OBD_MD_LINKNAME) {
@@ -284,8 +281,8 @@ static int mdt_getattr_internal(struct mdt_thread_info *info,
                 repbody->max_cookiesize = info->mti_mdt->mdt_max_cookiesize;
                 repbody->max_mdsize = info->mti_mdt->mdt_max_mdsize;
                 repbody->valid |= OBD_MD_FLMODEASIZE;
-                CDEBUG(D_INODE, "I am going to change the MAX_MD_SIZE & MAX_COOKIE"
-                                " to : %d:%d\n",
+                CDEBUG(D_INODE, "I am going to change the MAX_MD_SIZE & "
+                                "MAX_COOKIE to : %d:%d\n",
                                 repbody->max_mdsize,
                                 repbody->max_cookiesize);
         }
@@ -419,6 +416,7 @@ static int mdt_getattr_name_lock(struct mdt_thread_info *info,
         if (result != 0)
                 mdt_object_unlock(info, child, lhc, 1);
         else {
+                /* This is pure debugging code. */
                 struct ldlm_lock *lock;
                 struct ldlm_res_id *res_id;
                 lock = ldlm_handle2lock(&lhc->mlh_lh);
@@ -426,15 +424,14 @@ static int mdt_getattr_name_lock(struct mdt_thread_info *info,
                         res_id = &lock->l_resource->lr_name;
                         LDLM_DEBUG(lock, "we will return this lock client\n");
                         LASSERTF(fid_res_name_eq(mdt_object_fid(child),
-                                                &lock->l_resource->lr_name),
+                                                 &lock->l_resource->lr_name),
                                 "Lock res_id: %lu/%lu/%lu, Fid: "DFID".\n",
-                         (unsigned long)res_id->name[0],
-                         (unsigned long)res_id->name[1],
-                         (unsigned long)res_id->name[2],
-                         PFID(mdt_object_fid(child)));
+                                (unsigned long)res_id->name[0],
+                                (unsigned long)res_id->name[1],
+                                (unsigned long)res_id->name[2],
+                                PFID(mdt_object_fid(child)));
                         LDLM_LOCK_PUT(lock);
                 }
-
         }
         mdt_object_put(info->mti_ctxt, child);
 
@@ -590,7 +587,7 @@ static int mdt_readpage(struct mdt_thread_info *info)
                 RETURN(-EFAULT);
         }
         rdpg->rp_count  = reqbody->nlink;
-        rdpg->rp_npages = (rdpg->rp_count + CFS_PAGE_SIZE - 1)>> CFS_PAGE_SHIFT;
+        rdpg->rp_npages = (rdpg->rp_count + CFS_PAGE_SIZE - 1)>>CFS_PAGE_SHIFT;
         OBD_ALLOC(rdpg->rp_pages, rdpg->rp_npages * sizeof rdpg->rp_pages[0]);
         if (rdpg->rp_pages == NULL)
                 RETURN(-ENOMEM);
@@ -686,7 +683,6 @@ static int mdt_reint(struct mdt_thread_info *info)
                 OBD_FAIL_RETURN(OBD_FAIL_MDS_REINT_NET, 0);
 
                 rc = mdt_reint_internal(info, opc);
-
         } else
                 rc = opc;
         RETURN(rc);
@@ -727,23 +723,24 @@ static int mdt_sync(struct mdt_thread_info *info)
                         rc = mdt_device_sync(info);
         } else {
                 /* sync an object */
-                rc = mdt_unpack_req_pack_rep(info, HABEO_CORPUS | HABEO_REFERO);
+                rc = mdt_unpack_req_pack_rep(info, HABEO_CORPUS|HABEO_REFERO);
                 if (rc == 0) {
                         rc = mdt_object_sync(info);
                         if (rc == 0) {
                                 struct md_object    *next;
                                 const struct lu_fid *fid;
+                                struct lu_attr      *la;
+
                                 next = mdt_object_child(info->mti_object);
                                 fid = mdt_object_fid(info->mti_object);
                                 info->mti_attr.ma_need = MA_INODE;
-                                rc = mo_attr_get(info->mti_ctxt,
-                                                 next, &info->mti_attr);
+                                rc = mo_attr_get(info->mti_ctxt, next, 
+                                                 &info->mti_attr);
+                                la = &info->mti_attr.ma_attr;
                                 if (rc == 0) {
                                         body = req_capsule_server_get(pill,
                                                                 &RMF_MDT_BODY);
-                                        mdt_pack_attr2body(body,
-                                                           &info->mti_attr.ma_attr,
-                                                           fid);
+                                        mdt_pack_attr2body(body, la, fid);
                                 }
                         }
                 }
@@ -863,16 +860,16 @@ int fid_lock(struct ldlm_namespace *ns, const struct lu_fid *f,
         LASSERT(lh != NULL);
         LASSERT(f != NULL);
 
-        rc = ldlm_cli_enqueue_local(ns, *fid_build_res_name(f, res_id), LDLM_IBITS, 
-                                    policy, mode, &flags, ldlm_blocking_ast
-                                    ldlm_completion_ast, NULL, NULL, 0, NULL,
-                                    lh);
+        rc = ldlm_cli_enqueue_local(ns, *fid_build_res_name(f, res_id),
+                                    LDLM_IBITS, policy, mode, &flags
+                                    ldlm_blocking_ast, ldlm_completion_ast, 
+                                    NULL, NULL, 0, NULL, lh);
         return rc == ELDLM_OK ? 0 : -EIO;
 }
 
 /* just call ldlm_lock_decref() if decref,
  * else we only call ptlrpc_save_lock() to save this lock in req.
- * when transaction committed, req will be released and lock will be released */
+ * when transaction committed, req will be released, and lock will, too */
 void fid_unlock(struct ptlrpc_request *req, const struct lu_fid *f,
                 struct lustre_handle *lh, ldlm_mode_t mode, int decref)
 {
@@ -928,7 +925,8 @@ int mdt_object_lock(struct mdt_thread_info *info, struct mdt_object *o,
 
         policy->l_inodebits.bits = ibits;
 
-        rc = fid_lock(ns, mdt_object_fid(o), &lh->mlh_lh, lh->mlh_mode, policy, res_id);
+        rc = fid_lock(ns, mdt_object_fid(o), &lh->mlh_lh, lh->mlh_mode, 
+                      policy, res_id);
         RETURN(rc);
 }
 
@@ -1079,7 +1077,6 @@ static int mdt_unpack_req_pack_rep(struct mdt_thread_info *info, __u32 flags)
         RETURN(result);
 }
 
-/* FIXME: fake untill journal callback is OK.*/
 struct lu_context_key mdt_txn_key;
 
 static inline void mdt_finish_reply(struct mdt_thread_info *info, int rc)
@@ -1088,8 +1085,9 @@ static inline void mdt_finish_reply(struct mdt_thread_info *info, int rc)
         struct ptlrpc_request *req = mdt_info_req(info);
         struct obd_export     *exp = req->rq_export;
 
+        /* sometimes the reply message has not been successfully packed */
         if (mdt == NULL || req == NULL || req->rq_repmsg == NULL)
-                LBUG();
+                return;
 
         if (info->mti_trans_flags & MDT_NONEED_TRANSNO)
                 return;
@@ -1138,7 +1136,7 @@ static int mdt_req_handle(struct mdt_thread_info *info,
 
         result = 0;
         flags = h->mh_flags;
-        LASSERT(ergo(flags & (HABEO_CORPUS | HABEO_REFERO), h->mh_fmt != NULL));
+        LASSERT(ergo(flags & (HABEO_CORPUS|HABEO_REFERO), h->mh_fmt != NULL));
 
         if (h->mh_fmt != NULL) {
                 req_capsule_set(&info->mti_pill, h->mh_fmt);
@@ -1154,7 +1152,7 @@ static int mdt_req_handle(struct mdt_thread_info *info,
 
                 LASSERT(h->mh_fmt != NULL);
 
-                dlm_req = req_capsule_client_get(&info->mti_pill, &RMF_DLM_REQ);
+                dlm_req = req_capsule_client_get(&info->mti_pill,&RMF_DLM_REQ);
                 if (dlm_req != NULL) {
                         if (info->mti_mdt->mdt_opts.mo_compat_resname)
                                 result = mdt_lock_resname_compat(info->mti_mdt,
@@ -1182,12 +1180,12 @@ static int mdt_req_handle(struct mdt_thread_info *info,
         result = 0;
         LASSERT(current->journal_info == NULL);
 
-        if (flags & HABEO_CLAVIS && info->mti_mdt->mdt_opts.mo_compat_resname) {
-                struct ldlm_reply *dlm_rep;
+        if (flags & HABEO_CLAVIS && info->mti_mdt->mdt_opts.mo_compat_resname){
+                struct ldlm_reply *dlmrep;
 
-                dlm_rep = req_capsule_server_get(&info->mti_pill, &RMF_DLM_REP);
-                if (dlm_rep != NULL)
-                        result = mdt_lock_reply_compat(info->mti_mdt, dlm_rep);
+                dlmrep = req_capsule_server_get(&info->mti_pill, &RMF_DLM_REP);
+                if (dlmrep != NULL)
+                        result = mdt_lock_reply_compat(info->mti_mdt, dlmrep);
         }
 
         /* If we're DISCONNECTing, the mdt_export_data is already freed */
@@ -1340,7 +1338,8 @@ static int mdt_reply(struct ptlrpc_request *req, int result,
 /* mds/handler.c */
 extern int mds_msg_check_version(struct lustre_msg *msg);
 
-static int mdt_handle0(struct ptlrpc_request *req, struct mdt_thread_info *info,
+static int mdt_handle0(struct ptlrpc_request *req, 
+                       struct mdt_thread_info *info,
                        struct mdt_opc_slice *supported)
 {
         struct mdt_handler *h;
@@ -1359,7 +1358,8 @@ static int mdt_handle0(struct ptlrpc_request *req, struct mdt_thread_info *info,
                 result = mdt_recovery(req);
                 switch (result) {
                 case +1:
-                        h = mdt_handler_find(lustre_msg_get_opc(msg), supported);
+                        h = mdt_handler_find(lustre_msg_get_opc(msg), 
+                                             supported);
                         if (h != NULL)
                                 result = mdt_req_handle(info, h, req);
                         else {
@@ -2673,8 +2673,9 @@ static int mdt_upcall(const struct lu_context *ctx, struct md_device *md,
         switch (ev) {
                 case MD_LOV_SYNC:
                         rc = next->md_ops->mdo_get_maxsize(ctx, next,
-                                    &m->mdt_max_mdsize, &m->mdt_max_cookiesize);
-                        CDEBUG(D_INFO, "get max mdsize %d max cookiesize %d \n",
+                                        &m->mdt_max_mdsize, 
+                                        &m->mdt_max_cookiesize);
+                        CDEBUG(D_INFO, "get max mdsize %d max cookiesize %d\n",
                                      m->mdt_max_mdsize, m->mdt_max_cookiesize);
                         break;
                 default:
@@ -2690,16 +2691,17 @@ static struct obd_ops mdt_obd_device_ops = {
         .o_owner          = THIS_MODULE,
         .o_connect        = mdt_obd_connect,
         .o_disconnect     = mdt_obd_disconnect,
-        .o_init_export    = mdt_init_export,    /* By Huang Hua*/
-        .o_destroy_export = mdt_destroy_export, /* By Huang Hua*/
+        .o_init_export    = mdt_init_export,
+        .o_destroy_export = mdt_destroy_export,
 };
 
-static struct lu_device* mdt_device_fini(const struct lu_context *ctx, struct lu_device *d)
+static struct lu_device* mdt_device_fini(const struct lu_context *ctx, 
+                                         struct lu_device *d)
 {
         struct mdt_device *m = mdt_dev(d);
 
         mdt_fini(ctx, m);
-        RETURN (NULL);
+        RETURN(NULL);
 }
 
 static void mdt_device_free(const struct lu_context *ctx, struct lu_device *d)
index 90cb37f..11b7fc1 100644 (file)
@@ -152,7 +152,7 @@ struct mdt_object {
         struct lu_object_header mot_header;
         struct md_object        mot_obj;
         __u64                   mot_io_epoch;
-        atomic_t                mot_writecount;
+        int                     mot_writecount;
 };
 
 struct mdt_lock_handle {
index 6f53189..92d1dbf 100644 (file)
@@ -292,7 +292,8 @@ static int mdt_unlink_unpack(struct mdt_thread_info *info)
                 attr->la_mtime = rec->ul_time;
                 attr->la_mode  = rec->ul_mode;
 
-                attr->la_valid = LA_UID | LA_GID | LA_CTIME | LA_MTIME | LA_MODE;
+                attr->la_valid = LA_UID   | LA_GID  | LA_CTIME | 
+                                 LA_MTIME | LA_MODE;
                 rr->rr_name = req_capsule_client_get(pill, &RMF_NAME);
                 if (rr->rr_name == NULL)
                         result = -EFAULT;
@@ -348,12 +349,11 @@ static int mdt_open_unpack(struct mdt_thread_info *info)
                 attr->la_ctime = rec->cr_time;
                 attr->la_mtime = rec->cr_time;
                 attr->la_atime = rec->cr_time;
-                attr->la_valid = LA_MODE | LA_RDEV | LA_UID | LA_GID | LA_CTIME
-                                 | LA_MTIME | LA_ATIME;
+                attr->la_valid = LA_MODE  | LA_RDEV  | LA_UID   | LA_GID |
+                                 LA_CTIME | LA_MTIME | LA_ATIME;
                 info->mti_spec.sp_cr_flags = rec->cr_flags;
                 rr->rr_name = req_capsule_client_get(pill, &RMF_NAME);
                 if (rr->rr_name == NULL)
-                        /*XXX: what about open by FID? */
                         result = -EFAULT;
                 else
                         result = 0;
index 11b15fc..2602974 100644 (file)
@@ -106,7 +106,7 @@ static int mdt_get_write_access(struct mdt_device *mdt, struct mdt_object *o,
 
         spin_lock(&mdt->mdt_epoch_lock);
 
-        if (atomic_read(&o->mot_writecount) < 0) {
+        if (o->mot_writecount < 0) {
                 rc = -ETXTBSY;
         } else {
                 if (o->mot_io_epoch != 0) {
@@ -121,24 +121,22 @@ static int mdt_get_write_access(struct mdt_device *mdt, struct mdt_object *o,
                         CDEBUG(D_INODE, "starting epoch "LPU64" for "DFID"\n",
                                mdt->mdt_io_epoch, PFID(mdt_object_fid(o)));
                 }
-                atomic_inc(&o->mot_writecount);
+                o->mot_writecount ++;
         }
         spin_unlock(&mdt->mdt_epoch_lock);
         RETURN(rc);
 }
 
-static int mdt_put_write_access(struct mdt_device *mdt, struct mdt_object *o)
+static void  mdt_put_write_access(struct mdt_device *mdt, struct mdt_object *o)
 {
-        int rc;
         ENTRY;
 
         spin_lock(&mdt->mdt_epoch_lock);
-        atomic_dec(&o->mot_writecount);
-        rc = atomic_read(&o->mot_writecount);
-        if (rc == 0)
+        o->mot_writecount --;
+        if (o->mot_writecount == 0)
                 o->mot_io_epoch = 0;
         spin_unlock(&mdt->mdt_epoch_lock);
-        RETURN(rc);
+        EXIT;
 }
 
 static int mdt_deny_write_access(struct mdt_device *mdt, struct mdt_object *o)
@@ -146,25 +144,34 @@ static int mdt_deny_write_access(struct mdt_device *mdt, struct mdt_object *o)
         int rc = 0;
         ENTRY;
         spin_lock(&mdt->mdt_epoch_lock);
-        if (atomic_read(&o->mot_writecount) > 0) {
+        if (o->mot_writecount > 0) {
                 rc = -ETXTBSY;
         } else
-                atomic_dec(&o->mot_writecount);
+                o->mot_writecount --;
         spin_unlock(&mdt->mdt_epoch_lock);
         RETURN(rc);
 }
 
-static void mdt_allow_write_access(struct mdt_object *o)
+static void mdt_allow_write_access(struct mdt_device *mdt, 
+                                   struct mdt_object *o)
 {
         ENTRY;
-        atomic_inc(&o->mot_writecount);
+        spin_lock(&mdt->mdt_epoch_lock);
+        o->mot_writecount ++;
+        spin_unlock(&mdt->mdt_epoch_lock);
         EXIT;
 }
 
-int mdt_query_write_access(struct mdt_object *o)
+int mdt_query_write_access(struct mdt_device *mdt, struct mdt_object *o)
 {
+        int wc;
         ENTRY;
-        RETURN(atomic_read(&o->mot_writecount));
+
+        spin_lock(&mdt->mdt_epoch_lock);
+        wc = o->mot_writecount;
+        spin_unlock(&mdt->mdt_epoch_lock);
+
+        RETURN(wc);
 }
 
 static int mdt_mfd_open(struct mdt_thread_info *info,
@@ -200,12 +207,12 @@ static int mdt_mfd_open(struct mdt_thread_info *info,
         if (ma->ma_valid & MA_INODE)
                 mdt_pack_attr2body(repbody, la, mdt_object_fid(o));
 
-        /* this check need to return the exists object's fid back, so it is done
+        /* we need to return the existing object's fid back, so it is done
          * here, after preparing the reply */
         if (!created && (flags & MDS_OPEN_EXCL) && (flags & MDS_OPEN_CREAT))
-                RETURN (-EEXIST);
+                RETURN(-EEXIST);
 
-        /* if we are following a symlink, don't open
+        /* if we are following a symlink, don't open;
          * do not return open handle for special nodes as client required
          */
         if (islnk || (!isreg && !isdir &&
@@ -240,7 +247,7 @@ static int mdt_mfd_open(struct mdt_thread_info *info,
         repbody->eadatasize = 0;
         repbody->aclsize = 0;
 
-        if (/*ma->ma_lmm_size && */ma->ma_valid & MA_LOV) {
+        if (ma->ma_valid & MA_LOV) {
                 LASSERT(ma->ma_lmm_size);
                 repbody->eadatasize = ma->ma_lmm_size;
                 if (isdir)
@@ -273,7 +280,7 @@ static int mdt_mfd_open(struct mdt_thread_info *info,
         /* (1) client wants transno when open to keep a ref count for replay;
          *     see after_reply() and mdc_close_commit();
          * (2) we need to record the transaction related stuff onto disk;
-         * But, question is: when do a rean only open, do we still need transno?
+         * The question is: when do a read_only open, do we still need transno?
          */
         if (!created) {
                 struct txn_param txn;
@@ -336,7 +343,8 @@ int mdt_open_by_fid(struct mdt_thread_info* info, const struct lu_fid *fid,
                                                       &info->mti_spec,
                                                       &info->mti_attr);
                                 if (rc == 0)
-                                        rc = mdt_mfd_open(info, NULL, o, flags, 1);
+                                        rc = mdt_mfd_open(info, NULL, o, 
+                                                          flags, 1);
                         }
                 }
                 mdt_object_put(info->mti_ctxt, o);
@@ -449,7 +457,6 @@ int mdt_reint_open(struct mdt_thread_info *info)
                                     rr->rr_name,
                                     mdt_object_child(child),
                                     &info->mti_spec,
-                                    /* rr->rr_tgt, rr->rr_eadata, rr->rr_eadatalen,*/
                                     &info->mti_attr);
                 intent_set_disposition(ldlm_rep, DISP_OPEN_CREATE);
                 if (result != 0)
@@ -489,7 +496,7 @@ void mdt_mfd_close(const struct lu_context *ctxt,
         if (mfd->mfd_mode & FMODE_WRITE) {
                 mdt_put_write_access(mdt, o);
         } else if (mfd->mfd_mode & MDS_FMODE_EXEC) {
-                mdt_allow_write_access(o);
+                mdt_allow_write_access(mdt, o);
         }
 
         mdt_mfd_free(mfd);
index b67d355..67ffcbf 100644 (file)
@@ -66,7 +66,6 @@ static int mdt_md_create(struct mdt_thread_info *info)
                 ma->ma_need = MA_INODE;
                 rc = mdo_create(info->mti_ctxt, next, rr->rr_name,
                                 mdt_object_child(child), &info->mti_spec,
-                                /* rr->rr_tgt, NULL, 0, */
                                 ma);
                 if (rc == 0) {
                         /* return fid & attr to client. */
@@ -252,7 +251,8 @@ static int mdt_reint_unlink(struct mdt_thread_info *info)
         /* step 1: lock the parent */
         lhp = &info->mti_lh[MDT_LH_PARENT];
         lhp->mlh_mode = LCK_EX;
-        mp = mdt_object_find_lock(info, rr->rr_fid1, lhp, MDS_INODELOCK_UPDATE);
+        mp = mdt_object_find_lock(info, rr->rr_fid1, lhp,
+                                  MDS_INODELOCK_UPDATE);
         if (IS_ERR(mp))
                 RETURN(PTR_ERR(mp));
 
@@ -335,7 +335,8 @@ static int mdt_reint_link(struct mdt_thread_info *info)
         /* step 1: lock the source */
         lhs = &info->mti_lh[MDT_LH_PARENT];
         lhs->mlh_mode = LCK_EX;
-        ms = mdt_object_find_lock(info, rr->rr_fid1, lhs, MDS_INODELOCK_UPDATE);
+        ms = mdt_object_find_lock(info, rr->rr_fid1, lhs, 
+                                  MDS_INODELOCK_UPDATE);
         if (IS_ERR(ms))
                 RETURN(PTR_ERR(ms));
 
@@ -347,7 +348,8 @@ static int mdt_reint_link(struct mdt_thread_info *info)
         /*step 2: find & lock the target parent dir*/
         lhp = &info->mti_lh[MDT_LH_CHILD];
         lhp->mlh_mode = LCK_EX;
-        mp = mdt_object_find_lock(info, rr->rr_fid2, lhp, MDS_INODELOCK_UPDATE);
+        mp = mdt_object_find_lock(info, rr->rr_fid2, lhp, 
+                                  MDS_INODELOCK_UPDATE);
         if (IS_ERR(mp))
                 GOTO(out_unlock_source, rc = PTR_ERR(mp));