Whamcloud - gitweb
LU-6047 obd: remove client Size on MDS support 69/13169/3
authorJohn L. Hammond <john.hammond@intel.com>
Mon, 22 Dec 2014 18:40:21 +0000 (12:40 -0600)
committerOleg Drokin <oleg.drokin@intel.com>
Wed, 11 Mar 2015 23:34:01 +0000 (23:34 +0000)
Remove the unused OBD MD API method md_done_writing(). Remove the
unused logcookie and struct md_open_data ** parameters from
md_setattr(). Remove the unused functions iattr_from_obdo(),
md_from_obdo(), and obdo_refresh_inode().

Signed-off-by: John L. Hammond <john.hammond@intel.com>
Change-Id: I59bf2b101807f5b582eb7ab27e5a742284800979
Reviewed-on: http://review.whamcloud.com/13169
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Henri Doreau <henri.doreau@cea.fr>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
14 files changed:
lustre/include/lustre/lustre_idl.h
lustre/include/obd.h
lustre/include/obd_class.h
lustre/llite/dir.c
lustre/llite/llite_lib.c
lustre/lmv/lmv_obd.c
lustre/lov/lov_request.c
lustre/mdc/mdc_internal.h
lustre/mdc/mdc_lib.c
lustre/mdc/mdc_reint.c
lustre/mdc/mdc_request.c
lustre/obdclass/linux/linux-obdo.c
lustre/obdclass/lprocfs_status.c
lustre/obdclass/obdo.c

index 4a86f75..cd2bb40 100644 (file)
@@ -2269,8 +2269,6 @@ enum md_op_flags {
        MF_GET_MDT_IDX          = (1 << 9),
 };
 
-#define MF_SOM_LOCAL_FLAGS (MF_SOM_CHANGE | MF_EPOCH_OPEN | MF_EPOCH_CLOSE)
-
 #define LUSTRE_BFLAG_UNCOMMITTED_WRITES   0x1
 
 /* these should be identical to their EXT4_*_FL counterparts, they are
index 15c64f4..f65f804 100644 (file)
@@ -849,8 +849,6 @@ struct md_op_data {
        unsigned int            op_attr_flags; /* LUSTRE_{SYNC,..}_FL */
        __u64                   op_valid; /* OBD_MD_* */
 
-       /* Size-on-MDS epoch and flags. */
-       __u64                   op_ioepoch;
        enum md_op_flags        op_flags;
 
        /* Capa fields */
@@ -1088,8 +1086,7 @@ struct md_ops {
                        struct ptlrpc_request **);
 
        int (*m_setattr)(struct obd_export *, struct md_op_data *, void *,
-                       size_t , void *, size_t, struct ptlrpc_request **,
-                        struct md_open_data **mod);
+                        size_t , struct ptlrpc_request **);
 
        int (*m_fsync)(struct obd_export *, const struct lu_fid *,
                       struct obd_capa *, struct ptlrpc_request **);
@@ -1128,9 +1125,6 @@ struct md_ops {
        int (*m_find_cbdata)(struct obd_export *, const struct lu_fid *,
                             ldlm_iterator_t, void *);
 
-       int (*m_done_writing)(struct obd_export *, struct md_op_data  *,
-                             struct md_open_data *);
-
        int (*m_getattr_name)(struct obd_export *, struct md_op_data *,
                              struct ptlrpc_request **);
 
index cc4ab8d..5faf160 100644 (file)
@@ -321,13 +321,9 @@ struct inode;
 
 void obdo_from_la(struct obdo *dst, const struct lu_attr *la, __u64 valid);
 void la_from_obdo(struct lu_attr *la, const struct obdo *dst, u32 valid);
-void obdo_refresh_inode(struct inode *dst, const struct obdo *src,
-                       u32 valid);
 
 void obdo_cpy_md(struct obdo *dst, const struct obdo *src, u32 valid);
 void obdo_to_ioobj(const struct obdo *oa, struct obd_ioobj *ioobj);
-void md_from_obdo(struct md_op_data *op_data, const struct obdo *oa,
-                 u32 valid);
 
 #define OBT(dev)        (dev)->obd_type
 #define OBP(dev, op)    (dev)->obd_type->typ_dt_ops->o_ ## op
@@ -1478,18 +1474,6 @@ static inline int md_create(struct obd_export *exp, struct md_op_data *op_data,
         RETURN(rc);
 }
 
-static inline int md_done_writing(struct obd_export *exp,
-                                  struct md_op_data *op_data,
-                                  struct md_open_data *mod)
-{
-        int rc;
-        ENTRY;
-        EXP_CHECK_MD_OP(exp, done_writing);
-        EXP_MD_COUNTER_INCREMENT(exp, done_writing);
-        rc = MDP(exp->exp_obd, done_writing)(exp, op_data, mod);
-        RETURN(rc);
-}
-
 static inline int md_enqueue(struct obd_export *exp,
                             struct ldlm_enqueue_info *einfo,
                             const union ldlm_policy_data *policy,
@@ -1560,17 +1544,15 @@ static inline int md_rename(struct obd_export *exp, struct md_op_data *op_data,
 }
 
 static inline int md_setattr(struct obd_export *exp, struct md_op_data *op_data,
-                            void *ea, size_t ealen, void *ea2, size_t ea2len,
-                            struct ptlrpc_request **request,
-                            struct md_open_data **mod)
+                            void *ea, size_t ealen,
+                            struct ptlrpc_request **request)
 {
-        int rc;
-        ENTRY;
-        EXP_CHECK_MD_OP(exp, setattr);
-        EXP_MD_COUNTER_INCREMENT(exp, setattr);
-        rc = MDP(exp->exp_obd, setattr)(exp, op_data, ea, ealen,
-                                        ea2, ea2len, request, mod);
-        RETURN(rc);
+       int rc;
+       ENTRY;
+       EXP_CHECK_MD_OP(exp, setattr);
+       EXP_MD_COUNTER_INCREMENT(exp, setattr);
+       rc = MDP(exp->exp_obd, setattr)(exp, op_data, ea, ealen, request);
+       RETURN(rc);
 }
 
 static inline int md_fsync(struct obd_export *exp, const struct lu_fid *fid,
index d44eca7..440c711 100644 (file)
@@ -514,8 +514,7 @@ int ll_dir_setstripe(struct inode *inode, struct lov_user_md *lump,
                 RETURN(PTR_ERR(op_data));
 
         /* swabbing is done in lov_setstripe() on server side */
-        rc = md_setattr(sbi->ll_md_exp, op_data, lump, lum_size,
-                        NULL, 0, &req, NULL);
+       rc = md_setattr(sbi->ll_md_exp, op_data, lump, lum_size, &req);
         ll_finish_md_op_data(op_data);
         ptlrpc_req_finished(req);
         if (rc) {
index b48d027..ea3620d 100644 (file)
@@ -1482,8 +1482,7 @@ void ll_clear_inode(struct inode *inode)
        EXIT;
 }
 
-static int ll_md_setattr(struct dentry *dentry, struct md_op_data *op_data,
-                        struct md_open_data **mod)
+static int ll_md_setattr(struct dentry *dentry, struct md_op_data *op_data)
 {
         struct lustre_md md;
         struct inode *inode = dentry->d_inode;
@@ -1497,8 +1496,7 @@ static int ll_md_setattr(struct dentry *dentry, struct md_op_data *op_data,
         if (IS_ERR(op_data))
                 RETURN(PTR_ERR(op_data));
 
-        rc = md_setattr(sbi->ll_md_exp, op_data, NULL, 0, NULL, 0,
-                        &request, mod);
+       rc = md_setattr(sbi->ll_md_exp, op_data, NULL, 0, &request);
        if (rc) {
                ptlrpc_req_finished(request);
                if (rc == -ENOENT) {
@@ -1578,7 +1576,6 @@ int ll_setattr_raw(struct dentry *dentry, struct iattr *attr, bool hsm_import)
         struct inode *inode = dentry->d_inode;
         struct ll_inode_info *lli = ll_i2info(inode);
         struct md_op_data *op_data = NULL;
-        struct md_open_data *mod = NULL;
        bool file_is_released = false;
        int rc = 0;
        ENTRY;
@@ -1685,7 +1682,7 @@ int ll_setattr_raw(struct dentry *dentry, struct iattr *attr, bool hsm_import)
 
        memcpy(&op_data->op_attr, attr, sizeof(*attr));
 
-       rc = ll_md_setattr(dentry, op_data, &mod);
+       rc = ll_md_setattr(dentry, op_data);
        if (rc)
                GOTO(out, rc);
 
@@ -2135,8 +2132,7 @@ int ll_iocontrol(struct inode *inode, struct file *file,
 
                op_data->op_attr_flags = flags;
                 op_data->op_attr.ia_valid |= ATTR_ATTR_FLAG;
-                rc = md_setattr(sbi->ll_md_exp, op_data,
-                                NULL, 0, NULL, 0, &req, NULL);
+               rc = md_setattr(sbi->ll_md_exp, op_data, NULL, 0, &req);
                 ll_finish_md_op_data(op_data);
                 ptlrpc_req_finished(req);
                if (rc)
index a31ceb7..daeb893 100644 (file)
@@ -1854,28 +1854,6 @@ int lmv_create(struct obd_export *exp, struct md_op_data *op_data,
        RETURN(rc);
 }
 
-static int lmv_done_writing(struct obd_export *exp,
-                            struct md_op_data *op_data,
-                            struct md_open_data *mod)
-{
-        struct obd_device     *obd = exp->exp_obd;
-        struct lmv_obd        *lmv = &obd->u.lmv;
-        struct lmv_tgt_desc   *tgt;
-        int                    rc;
-        ENTRY;
-
-        rc = lmv_check_connect(obd);
-        if (rc)
-                RETURN(rc);
-
-        tgt = lmv_find_target(lmv, &op_data->op_fid1);
-        if (IS_ERR(tgt))
-                RETURN(PTR_ERR(tgt));
-
-        rc = md_done_writing(tgt->ltd_exp, op_data, mod);
-        RETURN(rc);
-}
-
 static int
 lmv_enqueue(struct obd_export *exp, struct ldlm_enqueue_info *einfo,
            const union ldlm_policy_data *policy,
@@ -2200,9 +2178,7 @@ static int lmv_rename(struct obd_export *exp, struct md_op_data *op_data,
 }
 
 static int lmv_setattr(struct obd_export *exp, struct md_op_data *op_data,
-                       void *ea, size_t ealen, void *ea2, size_t ea2len,
-                       struct ptlrpc_request **request,
-                       struct md_open_data **mod)
+                      void *ea, size_t ealen, struct ptlrpc_request **request)
 {
        struct obd_device       *obd = exp->exp_obd;
        struct lmv_obd          *lmv = &obd->u.lmv;
@@ -2222,8 +2198,7 @@ static int lmv_setattr(struct obd_export *exp, struct md_op_data *op_data,
        if (IS_ERR(tgt))
                RETURN(PTR_ERR(tgt));
 
-       rc = md_setattr(tgt->ltd_exp, op_data, ea, ealen, ea2,
-                       ea2len, request, mod);
+       rc = md_setattr(tgt->ltd_exp, op_data, ea, ealen, request);
 
        RETURN(rc);
 }
@@ -3564,7 +3539,6 @@ struct md_ops lmv_md_ops = {
         .m_find_cbdata          = lmv_find_cbdata,
         .m_close                = lmv_close,
         .m_create               = lmv_create,
-        .m_done_writing         = lmv_done_writing,
         .m_enqueue              = lmv_enqueue,
         .m_getattr              = lmv_getattr,
         .m_getxattr             = lmv_getxattr,
index 6867fa3..3f23941 100644 (file)
@@ -222,13 +222,6 @@ static int common_attr_done(struct lov_request_set *set)
                 CERROR("No stripes had valid attrs\n");
                 rc = -EIO;
         }
-        if ((set->set_oi->oi_oa->o_valid & OBD_MD_FLEPOCH) &&
-            (set->set_oi->oi_md->lsm_stripe_count != attrset)) {
-                /* When we take attributes of some epoch, we require all the
-                 * ost to be active. */
-                CERROR("Not all the stripes had valid attrs\n");
-                GOTO(out, rc = -EIO);
-        }
 
         tmp_oa->o_oi = set->set_oi->oi_oa->o_oi;
         memcpy(set->set_oi->oi_oa, tmp_oa, sizeof(*set->set_oi->oi_oa));
@@ -291,9 +284,6 @@ int lov_prep_getattr_set(struct obd_export *exp, struct obd_info *oinfo,
 
                if (!lov_check_and_wait_active(lov, loi->loi_ost_idx)) {
                        CDEBUG(D_HA, "lov idx %d inactive\n", loi->loi_ost_idx);
-                       if (oinfo->oi_oa->o_valid & OBD_MD_FLEPOCH)
-                               /* SOM requires all the OSTs to be active. */
-                               GOTO(out_set, rc = -EIO);
                        continue;
                }
 
index b8823b6..18df100 100644 (file)
@@ -55,7 +55,7 @@ void mdc_readdir_pack(struct ptlrpc_request *req, __u64 pgoff, size_t size,
 void mdc_getattr_pack(struct ptlrpc_request *req, __u64 valid, __u32 flags,
                      struct md_op_data *data, size_t ea_size);
 void mdc_setattr_pack(struct ptlrpc_request *req, struct md_op_data *op_data,
-                     void *ea, size_t ealen, void *ea2, size_t ea2len);
+                     void *ea, size_t ealen);
 void mdc_create_pack(struct ptlrpc_request *req, struct md_op_data *op_data,
                     const void *data, size_t datalen, umode_t mode,
                     uid_t uid, gid_t gid, cfs_cap_t capability, __u64 rdev);
@@ -126,8 +126,7 @@ int mdc_rename(struct obd_export *exp, struct md_op_data *op_data,
                const char *old, size_t oldlen, const char *new, size_t newlen,
                struct ptlrpc_request **request);
 int mdc_setattr(struct obd_export *exp, struct md_op_data *op_data,
-               void *ea, size_t ealen, void *ea2, size_t ea2len,
-               struct ptlrpc_request **request, struct md_open_data **mod);
+               void *ea, size_t ealen, struct ptlrpc_request **request);
 int mdc_unlink(struct obd_export *exp, struct md_op_data *op_data,
                struct ptlrpc_request **request);
 int mdc_cancel_unused(struct obd_export *exp, const struct lu_fid *fid,
index 5267c2e..f17c69a 100644 (file)
@@ -176,7 +176,7 @@ void mdc_create_pack(struct ptlrpc_request *req, struct md_op_data *op_data,
        rec->cr_time     = op_data->op_mod_time;
        rec->cr_suppgid1 = op_data->op_suppgids[0];
        rec->cr_suppgid2 = op_data->op_suppgids[1];
-       flags = op_data->op_flags & MF_SOM_LOCAL_FLAGS;
+       flags = 0;
        if (op_data->op_bias & MDS_CREATE_VOLATILE)
                flags |= MDS_OPEN_VOLATILE;
        set_mrc_cr_flags(rec, flags);
@@ -347,16 +347,15 @@ static void mdc_setattr_pack_rec(struct mdt_rec_setattr *rec,
 static void mdc_ioepoch_pack(struct mdt_ioepoch *epoch,
                              struct md_op_data *op_data)
 {
-        memcpy(&epoch->handle, &op_data->op_handle, sizeof(epoch->handle));
-        epoch->ioepoch = op_data->op_ioepoch;
-        epoch->flags = op_data->op_flags & MF_SOM_LOCAL_FLAGS;
+       memcpy(&epoch->handle, &op_data->op_handle, sizeof(epoch->handle));
+       epoch->ioepoch = 0;
+       epoch->flags = 0;
 }
 
 void mdc_setattr_pack(struct ptlrpc_request *req, struct md_op_data *op_data,
-                     void *ea, size_t ealen, void *ea2, size_t ea2len)
+                     void *ea, size_t ealen)
 {
         struct mdt_rec_setattr *rec;
-        struct mdt_ioepoch *epoch;
         struct lov_user_md *lum = NULL;
 
         CLASSERT(sizeof(struct mdt_rec_reint) ==sizeof(struct mdt_rec_setattr));
@@ -365,11 +364,6 @@ void mdc_setattr_pack(struct ptlrpc_request *req, struct md_op_data *op_data,
 
         mdc_pack_capa(req, &RMF_CAPA1, op_data->op_capa1);
 
-        if (op_data->op_flags & (MF_SOM_CHANGE | MF_EPOCH_OPEN)) {
-                epoch = req_capsule_client_get(&req->rq_pill, &RMF_MDT_EPOCH);
-                mdc_ioepoch_pack(epoch, op_data);
-        }
-
         if (ealen == 0)
                 return;
 
@@ -382,12 +376,6 @@ void mdc_setattr_pack(struct ptlrpc_request *req, struct md_op_data *op_data,
         } else {
                 memcpy(lum, ea, ealen);
         }
-
-        if (ea2len == 0)
-                return;
-
-        memcpy(req_capsule_client_get(&req->rq_pill, &RMF_LOGCOOKIES), ea2,
-               ea2len);
 }
 
 void mdc_unlink_pack(struct ptlrpc_request *req, struct md_op_data *op_data)
index 5640c29..375d0c8 100644 (file)
@@ -102,8 +102,7 @@ int mdc_resource_get_unused(struct obd_export *exp, const struct lu_fid *fid,
 }
 
 int mdc_setattr(struct obd_export *exp, struct md_op_data *op_data,
-               void *ea, size_t ealen, void *ea2, size_t ea2len,
-               struct ptlrpc_request **request, struct md_open_data **mod)
+               void *ea, size_t ealen, struct ptlrpc_request **request)
 {
        struct list_head cancels = LIST_HEAD_INIT(cancels);
         struct ptlrpc_request *req;
@@ -129,12 +128,9 @@ int mdc_setattr(struct obd_export *exp, struct md_op_data *op_data,
                 RETURN(-ENOMEM);
         }
         mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1);
-        if ((op_data->op_flags & (MF_SOM_CHANGE | MF_EPOCH_OPEN)) == 0)
-                req_capsule_set_size(&req->rq_pill, &RMF_MDT_EPOCH, RCL_CLIENT,
-                                     0);
-        req_capsule_set_size(&req->rq_pill, &RMF_EADATA, RCL_CLIENT, ealen);
-        req_capsule_set_size(&req->rq_pill, &RMF_LOGCOOKIES, RCL_CLIENT,
-                             ea2len);
+       req_capsule_set_size(&req->rq_pill, &RMF_MDT_EPOCH, RCL_CLIENT, 0);
+       req_capsule_set_size(&req->rq_pill, &RMF_EADATA, RCL_CLIENT, ealen);
+       req_capsule_set_size(&req->rq_pill, &RMF_LOGCOOKIES, RCL_CLIENT, 0);
 
        rc = mdc_prep_elc_req(exp, req, MDS_REINT, &cancels, count);
        if (rc) {
@@ -149,61 +145,16 @@ int mdc_setattr(struct obd_export *exp, struct md_op_data *op_data,
                        ", ctime "CFS_TIME_T"\n",
                        LTIME_S(op_data->op_attr.ia_mtime),
                        LTIME_S(op_data->op_attr.ia_ctime));
-        mdc_setattr_pack(req, op_data, ea, ealen, ea2, ea2len);
+       mdc_setattr_pack(req, op_data, ea, ealen);
 
         ptlrpc_request_set_replen(req);
-        if (mod && (op_data->op_flags & MF_EPOCH_OPEN) &&
-            req->rq_import->imp_replayable)
-        {
-                LASSERT(*mod == NULL);
-
-                *mod = obd_mod_alloc();
-                if (*mod == NULL) {
-                        DEBUG_REQ(D_ERROR, req, "Can't allocate "
-                                  "md_open_data");
-                } else {
-                        req->rq_replay = 1;
-                        req->rq_cb_data = *mod;
-                        (*mod)->mod_open_req = req;
-                        req->rq_commit_cb = mdc_commit_open;
-                       (*mod)->mod_is_create = true;
-                        /**
-                         * Take an extra reference on \var mod, it protects \var
-                         * mod from being freed on eviction (commit callback is
-                         * called despite rq_replay flag).
-                         * Will be put on mdc_done_writing().
-                         */
-                        obd_mod_get(*mod);
-                }
-        }
 
         rc = mdc_reint(req, rpc_lock, LUSTRE_IMP_FULL);
-
-        /* Save the obtained info in the original RPC for the replay case. */
-        if (rc == 0 && (op_data->op_flags & MF_EPOCH_OPEN)) {
-                struct mdt_ioepoch *epoch;
-                struct mdt_body  *body;
-
-                epoch = req_capsule_client_get(&req->rq_pill, &RMF_MDT_EPOCH);
-                body = req_capsule_server_get(&req->rq_pill, &RMF_MDT_BODY);
-                LASSERT(epoch != NULL);
-                LASSERT(body != NULL);
-               epoch->handle = body->mbo_handle;
-               epoch->ioepoch = body->mbo_ioepoch;
-                req->rq_replay_cb = mdc_replay_open;
-        /** bug 3633, open may be committed and estale answer is not error */
-        } else if (rc == -ESTALE && (op_data->op_flags & MF_SOM_CHANGE)) {
+       if (rc == -ERESTARTSYS)
                 rc = 0;
-        } else if (rc == -ERESTARTSYS) {
-                rc = 0;
-        }
+
         *request = req;
-       if (rc && req->rq_commit_cb) {
-               /* Put an extra reference on \var mod on error case. */
-               if (mod != NULL && *mod != NULL)
-                       obd_mod_put(*mod);
-               req->rq_commit_cb(req);
-       }
+
        RETURN(rc);
 }
 
index 0cc48d7..e354272 100644 (file)
@@ -634,10 +634,6 @@ int mdc_free_lustre_md(struct obd_export *exp, struct lustre_md *md)
         RETURN(0);
 }
 
-/**
- * Handles both OPEN and SETATTR RPCs for OPEN-CLOSE and SETATTR-DONE_WRITING
- * RPC chains.
- */
 void mdc_replay_open(struct ptlrpc_request *req)
 {
         struct md_open_data *mod = req->rq_cb_data;
@@ -674,7 +670,7 @@ void mdc_replay_open(struct ptlrpc_request *req)
                 __u32 opc = lustre_msg_get_opc(close_req->rq_reqmsg);
                 struct mdt_ioepoch *epoch;
 
-                LASSERT(opc == MDS_CLOSE || opc == MDS_DONE_WRITING);
+               LASSERT(opc == MDS_CLOSE);
                 epoch = req_capsule_client_get(&close_req->rq_pill,
                                                &RMF_MDT_EPOCH);
                 LASSERT(epoch);
@@ -820,22 +816,6 @@ int mdc_clear_open_replay_data(struct obd_export *exp,
         RETURN(0);
 }
 
-/* Prepares the request for the replay by the given reply */
-static void mdc_close_handle_reply(struct ptlrpc_request *req,
-                                   struct md_op_data *op_data, int rc) {
-        struct mdt_body  *repbody;
-        struct mdt_ioepoch *epoch;
-
-        if (req && rc == -EAGAIN) {
-                repbody = req_capsule_server_get(&req->rq_pill, &RMF_MDT_BODY);
-                epoch = req_capsule_client_get(&req->rq_pill, &RMF_MDT_EPOCH);
-
-                epoch->flags |= MF_SOM_AU;
-               if (repbody->mbo_valid & OBD_MD_FLGETATTRLOCK)
-                        op_data->op_flags |= MF_GETATTR_LOCK;
-        }
-}
-
 static int mdc_close(struct obd_export *exp, struct md_op_data *op_data,
                     struct md_open_data *mod, struct ptlrpc_request **request)
 {
@@ -950,78 +930,8 @@ static int mdc_close(struct obd_export *exp, struct md_op_data *op_data,
                 obd_mod_put(mod);
         }
         *request = req;
-        mdc_close_handle_reply(req, op_data, rc);
-        RETURN(rc < 0 ? rc : saved_rc);
-}
-
-static int mdc_done_writing(struct obd_export *exp, struct md_op_data *op_data,
-                           struct md_open_data *mod)
-{
-        struct obd_device     *obd = class_exp2obd(exp);
-        struct ptlrpc_request *req;
-        int                    rc;
-        ENTRY;
-
-        req = ptlrpc_request_alloc(class_exp2cliimp(exp),
-                                   &RQF_MDS_DONE_WRITING);
-        if (req == NULL)
-                RETURN(-ENOMEM);
 
-        mdc_set_capa_size(req, &RMF_CAPA1, op_data->op_capa1);
-        rc = ptlrpc_request_pack(req, LUSTRE_MDS_VERSION, MDS_DONE_WRITING);
-        if (rc) {
-                ptlrpc_request_free(req);
-                RETURN(rc);
-        }
-
-        if (mod != NULL) {
-                LASSERTF(mod->mod_open_req != NULL &&
-                         mod->mod_open_req->rq_type != LI_POISON,
-                         "POISONED setattr %p!\n", mod->mod_open_req);
-
-                mod->mod_close_req = req;
-                DEBUG_REQ(D_HA, mod->mod_open_req, "matched setattr");
-                /* We no longer want to preserve this setattr for replay even
-                 * though the open was committed. b=3632, b=3633 */
-               spin_lock(&mod->mod_open_req->rq_lock);
-               mod->mod_open_req->rq_replay = 0;
-               spin_unlock(&mod->mod_open_req->rq_lock);
-        }
-
-        mdc_close_pack(req, op_data);
-        ptlrpc_request_set_replen(req);
-
-        mdc_get_rpc_lock(obd->u.cli.cl_close_lock, NULL);
-        rc = ptlrpc_queue_wait(req);
-        mdc_put_rpc_lock(obd->u.cli.cl_close_lock, NULL);
-
-        if (rc == -ESTALE) {
-                /**
-                 * it can be allowed error after 3633 if open or setattr were
-                 * committed and server failed before close was sent.
-                 * Let's check if mod exists and return no error in that case
-                 */
-                if (mod) {
-                        LASSERT(mod->mod_open_req != NULL);
-                        if (mod->mod_open_req->rq_committed)
-                                rc = 0;
-                }
-        }
-
-        if (mod) {
-                if (rc != 0)
-                        mod->mod_close_req = NULL;
-               LASSERT(mod->mod_open_req != NULL);
-               mdc_free_open(mod);
-
-                /* Since now, mod is accessed through setattr req only,
-                 * thus DW req does not keep a reference on mod anymore. */
-                obd_mod_put(mod);
-        }
-
-        mdc_close_handle_reply(req, op_data, rc);
-        ptlrpc_req_finished(req);
-        RETURN(rc);
+       RETURN(rc < 0 ? rc : saved_rc);
 }
 
 static int mdc_getpage(struct obd_export *exp, const struct lu_fid *fid,
@@ -3112,7 +3022,6 @@ static struct md_ops mdc_md_ops = {
         .m_find_cbdata      = mdc_find_cbdata,
         .m_close            = mdc_close,
         .m_create           = mdc_create,
-        .m_done_writing     = mdc_done_writing,
         .m_enqueue          = mdc_enqueue,
         .m_getattr          = mdc_getattr,
         .m_getattr_name     = mdc_getattr_name,
index 4a56248..382db01 100644 (file)
@@ -151,39 +151,3 @@ void la_from_obdo(struct lu_attr *dst, const struct obdo *obdo, u32 valid)
        dst->la_valid = newvalid;
 }
 EXPORT_SYMBOL(la_from_obdo);
-
-void obdo_refresh_inode(struct inode *dst, const struct obdo *src,
-                       u32 valid)
-{
-        valid &= src->o_valid;
-
-        if (valid & (OBD_MD_FLCTIME | OBD_MD_FLMTIME))
-                CDEBUG(D_INODE,
-                       "valid "LPX64", cur time %lu/%lu, new "LPU64"/"LPU64"\n",
-                       src->o_valid, LTIME_S(dst->i_mtime),
-                       LTIME_S(dst->i_ctime), src->o_mtime, src->o_ctime);
-
-        if (valid & OBD_MD_FLATIME && src->o_atime > LTIME_S(dst->i_atime))
-                LTIME_S(dst->i_atime) = src->o_atime;
-        if (valid & OBD_MD_FLMTIME && src->o_mtime > LTIME_S(dst->i_mtime))
-                LTIME_S(dst->i_mtime) = src->o_mtime;
-        if (valid & OBD_MD_FLCTIME && src->o_ctime > LTIME_S(dst->i_ctime))
-                LTIME_S(dst->i_ctime) = src->o_ctime;
-        if (valid & OBD_MD_FLSIZE)
-                i_size_write(dst, src->o_size);
-       /* optimum IO size */
-       if (valid & OBD_MD_FLBLKSZ && src->o_blksize > (1 << dst->i_blkbits))
-               dst->i_blkbits = ffs(src->o_blksize) - 1;
-
-       if (dst->i_blkbits < PAGE_CACHE_SHIFT)
-               dst->i_blkbits = PAGE_CACHE_SHIFT;
-
-        /* allocation of space */
-        if (valid & OBD_MD_FLBLOCKS && src->o_blocks > dst->i_blocks)
-                /*
-                 * XXX shouldn't overflow be checked here like in
-                 * obdo_to_inode().
-                 */
-                dst->i_blocks = src->o_blocks;
-}
-EXPORT_SYMBOL(obdo_refresh_inode);
index ba82789..3f4c432 100644 (file)
@@ -1347,7 +1347,6 @@ void lprocfs_init_mps_stats(int num_private_stats, struct lprocfs_stats *stats)
         LPROCFS_MD_OP_INIT(num_private_stats, stats, find_cbdata);
         LPROCFS_MD_OP_INIT(num_private_stats, stats, close);
         LPROCFS_MD_OP_INIT(num_private_stats, stats, create);
-        LPROCFS_MD_OP_INIT(num_private_stats, stats, done_writing);
         LPROCFS_MD_OP_INIT(num_private_stats, stats, enqueue);
         LPROCFS_MD_OP_INIT(num_private_stats, stats, getattr);
         LPROCFS_MD_OP_INIT(num_private_stats, stats, getattr_name);
index ac586d4..69960e7 100644 (file)
@@ -167,67 +167,3 @@ void obdo_to_ioobj(const struct obdo *oa, struct obd_ioobj *ioobj)
        ioobj->ioo_max_brw = 0;
 }
 EXPORT_SYMBOL(obdo_to_ioobj);
-
-static void iattr_from_obdo(struct iattr *attr, const struct obdo *oa,
-                           u32 valid)
-{
-        valid &= oa->o_valid;
-
-        if (valid & (OBD_MD_FLCTIME | OBD_MD_FLMTIME))
-                CDEBUG(D_INODE, "valid "LPX64", new time "LPU64"/"LPU64"\n",
-                       oa->o_valid, oa->o_mtime, oa->o_ctime);
-
-        attr->ia_valid = 0;
-        if (valid & OBD_MD_FLATIME) {
-                LTIME_S(attr->ia_atime) = oa->o_atime;
-                attr->ia_valid |= ATTR_ATIME;
-        }
-        if (valid & OBD_MD_FLMTIME) {
-                LTIME_S(attr->ia_mtime) = oa->o_mtime;
-                attr->ia_valid |= ATTR_MTIME;
-        }
-        if (valid & OBD_MD_FLCTIME) {
-                LTIME_S(attr->ia_ctime) = oa->o_ctime;
-                attr->ia_valid |= ATTR_CTIME;
-        }
-        if (valid & OBD_MD_FLSIZE) {
-                attr->ia_size = oa->o_size;
-                attr->ia_valid |= ATTR_SIZE;
-        }
-#if 0   /* you shouldn't be able to change a file's type with setattr */
-        if (valid & OBD_MD_FLTYPE) {
-                attr->ia_mode = (attr->ia_mode & ~S_IFMT)|(oa->o_mode & S_IFMT);
-                attr->ia_valid |= ATTR_MODE;
-        }
-#endif
-        if (valid & OBD_MD_FLMODE) {
-               attr->ia_mode = (attr->ia_mode & S_IFMT)|(oa->o_mode & ~S_IFMT);
-               attr->ia_valid |= ATTR_MODE;
-               if (!in_group_p(make_kgid(&init_user_ns, oa->o_gid)) &&
-                   !cfs_capable(CFS_CAP_FSETID))
-                       attr->ia_mode &= ~S_ISGID;
-        }
-        if (valid & OBD_MD_FLUID) {
-               attr->ia_uid = make_kuid(&init_user_ns, oa->o_uid);
-                attr->ia_valid |= ATTR_UID;
-        }
-        if (valid & OBD_MD_FLGID) {
-               attr->ia_gid = make_kgid(&init_user_ns, oa->o_gid);
-                attr->ia_valid |= ATTR_GID;
-        }
-}
-
-void md_from_obdo(struct md_op_data *op_data, const struct obdo *oa,
-                 u32 valid)
-{
-        iattr_from_obdo(&op_data->op_attr, oa, valid);
-        if (valid & OBD_MD_FLBLOCKS) {
-                op_data->op_attr_blocks = oa->o_blocks;
-                op_data->op_attr.ia_valid |= ATTR_BLOCKS;
-        }
-        if (valid & OBD_MD_FLFLAGS) {
-               op_data->op_attr_flags = oa->o_flags;
-                op_data->op_attr.ia_valid |= ATTR_ATTR_FLAG;
-        }
-}
-EXPORT_SYMBOL(md_from_obdo);