Whamcloud - gitweb
- changes with names on exports and another fields in llite and mds. lov_exp is
[fs/lustre-release.git] / lustre / mds / mds_open.c
index 53b71a7..2209c17 100644 (file)
@@ -330,7 +330,7 @@ static int mds_create_objects(struct ptlrpc_request *req, int offset,
         if (body->valid & OBD_MD_FLEASIZE)
                 RETURN(0);
 
-        OBD_ALLOC(*ids, mds->mds_lov_desc.ld_tgt_count * sizeof(**ids));
+        OBD_ALLOC(*ids, mds->mds_dt_desc.ld_tgt_count * sizeof(**ids));
         if (*ids == NULL)
                 RETURN(-ENOMEM);
         oti.oti_objid = *ids;
@@ -351,7 +351,7 @@ static int mds_create_objects(struct ptlrpc_request *req, int offset,
                         GOTO(out_oa, rc);
                 }
 
-                mds_objids_from_lmm(*ids, lmm, &mds->mds_lov_desc);
+                mds_objids_from_lmm(*ids, lmm, &mds->mds_dt_desc);
 
                 lmm_buf = lustre_msg_buf(req->rq_repmsg, offset, 0);
                 lmm_bufsize = req->rq_repmsg->buflens[offset];
@@ -387,7 +387,7 @@ static int mds_create_objects(struct ptlrpc_request *req, int offset,
                 /* check if things like lfs setstripe are sending us the ea */
                 if (rec->ur_flags & MDS_OPEN_HAS_EA) {
                         rc = obd_iocontrol(OBD_IOC_LOV_SETSTRIPE,
-                                           mds->mds_lov_exp,
+                                           mds->mds_dt_exp,
                                            0, &lsm, rec->ur_eadata);
                         if (rc)
                                 GOTO(out_oa, rc);
@@ -397,7 +397,7 @@ static int mds_create_objects(struct ptlrpc_request *req, int offset,
                          * striping for CMD. -p */
                 } 
                 LASSERT(oa->o_gr >= FILTER_GROUP_FIRST_MDS);
-                rc = obd_create(mds->mds_lov_exp, oa, &lsm, &oti);
+                rc = obd_create(mds->mds_dt_exp, oa, &lsm, &oti);
                 if (rc) {
                         int level = D_ERROR;
                         if (rc == -ENOSPC)
@@ -413,7 +413,7 @@ static int mds_create_objects(struct ptlrpc_request *req, int offset,
                         GOTO(out_oa, rc);
                 }
         } else {
-                rc = obd_iocontrol(OBD_IOC_LOV_SETEA, mds->mds_lov_exp,
+                rc = obd_iocontrol(OBD_IOC_LOV_SETEA, mds->mds_dt_exp,
                                    0, &lsm, rec->ur_eadata);
                 if (rc) {
                         GOTO(out_oa, rc);
@@ -425,7 +425,7 @@ static int mds_create_objects(struct ptlrpc_request *req, int offset,
                 oa->o_size = inode->i_size;
                 obdo_from_inode(oa, inode, OBD_MD_FLTYPE|OBD_MD_FLATIME|
                                 OBD_MD_FLMTIME| OBD_MD_FLCTIME| OBD_MD_FLSIZE);
-                rc = obd_setattr(mds->mds_lov_exp, oa, lsm, &oti);
+                rc = obd_setattr(mds->mds_dt_exp, oa, lsm, &oti);
                 if (rc) {
                         CERROR("error setting attrs for inode %lu: rc %d\n",
                                inode->i_ino, rc);
@@ -442,9 +442,9 @@ static int mds_create_objects(struct ptlrpc_request *req, int offset,
 
         LASSERT(lsm && lsm->lsm_object_id);
         lmm = NULL;
-        rc = obd_packmd(mds->mds_lov_exp, &lmm, lsm);
+        rc = obd_packmd(mds->mds_dt_exp, &lmm, lsm);
         if (!id_ino(rec->ur_id2))
-                obd_free_memmd(mds->mds_lov_exp, &lsm);
+                obd_free_memmd(mds->mds_dt_exp, &lsm);
         LASSERT(rc >= 0);
         lmm_size = rc;
         body->eadatasize = rc;
@@ -464,13 +464,13 @@ static int mds_create_objects(struct ptlrpc_request *req, int offset,
         LASSERT(lmm_bufsize >= lmm_size);
 
         memcpy(lmm_buf, lmm, lmm_size);
-        obd_free_diskmd(mds->mds_lov_exp, &lmm);
+        obd_free_diskmd(mds->mds_dt_exp, &lmm);
  out_oa:
         oti_free_cookies(&oti);
         obdo_free(oa);
  out_ids:
         if (rc) {
-                OBD_FREE(*ids, mds->mds_lov_desc.ld_tgt_count * sizeof(**ids));
+                OBD_FREE(*ids, mds->mds_dt_desc.ld_tgt_count * sizeof(**ids));
                 *ids = NULL;
         }
         RETURN(rc);
@@ -682,8 +682,8 @@ static int mds_finish_open(struct ptlrpc_request *req, struct dentry *dchild,
         CDEBUG(D_INODE, "mfd %p, cookie "LPX64"\n", mfd,
                mfd->mfd_handle.h_cookie);
         if (ids != NULL) {
-                mds_lov_update_objids(obd, ids);
-                OBD_FREE(ids, sizeof(*ids) * mds->mds_lov_desc.ld_tgt_count);
+                mds_dt_update_objids(obd, ids);
+                OBD_FREE(ids, sizeof(*ids) * mds->mds_dt_desc.ld_tgt_count);
         }
         //if (rc)
         //        mds_mfd_destroy(mfd);
@@ -843,7 +843,7 @@ int mds_open(struct mds_update_record *rec, int offset,
         struct mds_body *body = NULL;
         struct dentry *dchild = NULL, *dparent = NULL;
         struct mds_export_data *med;
-        struct lustre_handle parent_lockh[2];
+        struct lustre_handle parent_lockh[2] = {{0}, {0}};
         int rc = 0, cleanup_phase = 0, acc_mode, created = 0;
         int parent_mode = LCK_PR;
         void *handle = NULL;
@@ -856,9 +856,6 @@ int mds_open(struct mds_update_record *rec, int offset,
                   OLID4(rec->ur_id1), rec->ur_namelen - 1, rec->ur_name,
                   rec->ur_mode);
 
-        parent_lockh[0].cookie = 0;
-        parent_lockh[1].cookie = 0;
-
         if (offset == 3) { /* intent */
                 rep = lustre_msg_buf(req->rq_repmsg, 0, sizeof (*rep));
                 body = lustre_msg_buf(req->rq_repmsg, 1, sizeof (*body));
@@ -870,7 +867,6 @@ int mds_open(struct mds_update_record *rec, int offset,
         }
 
         MDS_CHECK_RESENT(req, reconstruct_open(rec, offset, req, child_lockh));
-        MDS_UPDATE_COUNTER(mds, MDS_OPEN_COUNT);
 
         /*
          * Step 0: If we are passed a id, then we assume the client already
@@ -941,7 +937,7 @@ int mds_open(struct mds_update_record *rec, int offset,
         cleanup_phase = 1; /* parent dentry and lock */
 
         /* try to retrieve MEA data for this dir */
-        rc = mds_get_lmv_attr(obd, dparent->d_inode, &mea, &mea_size);
+        rc = mds_md_get_attr(obd, dparent->d_inode, &mea, &mea_size);
         if (rc)
                 GOTO(cleanup, rc);
        
@@ -1097,8 +1093,9 @@ got_child:
                 rc = fsfilt_setattr(obd, dparent, handle, &iattr, 0);
                 if (rc)
                         CERROR("error on parent setattr: rc = %d\n", rc);
-                else
-                        MDS_UPDATE_COUNTER(mds, MDS_CREATE_COUNT);
+                else {
+                        MD_COUNTER_INCREMENT(obd, create);
+                }
 
                 down(&dchild->d_inode->i_sem);
                 if (ino) {
@@ -1136,7 +1133,6 @@ got_child:
                  * we do not read fid from EA here, because it is already
                  * updated and thus we avoid not needed IO, locking, etc.
                  */
-                body->valid |= OBD_MD_FID;
                 mds_pack_inode2body(obd, body, dchild->d_inode, 0);
         } else {
                 mds_pack_inode2body(obd, body, dchild->d_inode, 1);
@@ -1184,9 +1180,9 @@ got_child:
                         /*we are trying to create or write a exist dir*/
                         GOTO(cleanup, rc = -EISDIR);
                 }
-                if (ll_permission(dchild->d_inode, acc_mode, NULL)) {
+                if (ll_permission(dchild->d_inode, acc_mode, NULL))
                         GOTO(cleanup, rc = -EACCES);
-                }
+
                 if (is_mount_object(dchild)) {
                         CERROR("Found possible GNS mount object %*s; not "
                                "opening.\n", dchild->d_name.len,
@@ -1448,8 +1444,7 @@ int mds_close(struct ptlrpc_request *req, int offset)
                               obd->u.mds.mds_max_mdsize,
                               obd->u.mds.mds_max_cookiesize};
         ENTRY;
-
-        MDS_UPDATE_COUNTER((&obd->u.mds), MDS_CLOSE_COUNT);
+        MD_COUNTER_INCREMENT(obd, close);
 
         rc = lustre_pack_reply(req, 3, repsize, NULL);
         if (rc) {