Whamcloud - gitweb
This is a bugfix for #1838. Most of the patch by A. Dilger, I only
authorgreen <green>
Thu, 23 Oct 2003 20:18:33 +0000 (20:18 +0000)
committergreen <green>
Thu, 23 Oct 2003 20:18:33 +0000 (20:18 +0000)
propagated parental time change to all operations, not only mkdir.

lustre/mdc/mdc_internal.h
lustre/mdc/mdc_lib.c
lustre/mds/mds_lib.c
lustre/utils/wirecheck.c

index 0605261..bab2ebb 100644 (file)
@@ -9,12 +9,10 @@ void mdc_setattr_pack(struct ptlrpc_request *req,
                       struct iattr *iattr, void *ea, int ealen,
                      void *ea2, int ea2len);
 void mdc_create_pack(struct ptlrpc_request *req, int offset,
-                     struct mdc_op_data *op_data,
-                     __u32 mode, __u64 rdev, __u64 time,
+                     struct mdc_op_data *op_data, __u32 mode, __u64 rdev,
                      const void *data, int datalen);
 void mdc_open_pack(struct ptlrpc_request *req, int offset,
-                   struct mdc_op_data *op_data,
-                   __u32 mode, __u64 rdev, __u64 time,
+                   struct mdc_op_data *op_data, __u32 mode, __u64 rdev,
                    __u32 flags, const void *data, int datalen);
 void mdc_unlink_pack(struct ptlrpc_request *req, int offset,
                      struct mdc_op_data *data);
index 0c634eb..d573eea 100644 (file)
@@ -61,8 +61,7 @@ void mdc_pack_req_body(struct ptlrpc_request *req)
 
 /* packing of MDS records */
 void mdc_create_pack(struct ptlrpc_request *req, int offset,
-                     struct mdc_op_data *op_data,
-                     __u32 mode, __u64 rdev, __u64 time,
+                     struct mdc_op_data *op_data, __u32 mode, __u64 rdev,
                      const void *data, int datalen)
 {
         struct mds_rec_create *rec;
@@ -77,7 +76,7 @@ void mdc_create_pack(struct ptlrpc_request *req, int offset,
         memset(&rec->cr_replayfid, 0, sizeof(rec->cr_replayfid));
         rec->cr_mode = mode;
         rec->cr_rdev = rdev;
-        rec->cr_time = time;
+        rec->cr_time = op_data->mod_time;
         rec->cr_suppgid = op_data->ctxt.gid1;
 
         tmp = lustre_msg_buf(req->rq_reqmsg, offset + 1, op_data->namelen + 1);
@@ -91,8 +90,7 @@ void mdc_create_pack(struct ptlrpc_request *req, int offset,
 
 /* packing of MDS records */
 void mdc_open_pack(struct ptlrpc_request *req, int offset,
-                   struct mdc_op_data *op_data,
-                   __u32 mode, __u64 rdev, __u64 time,
+                   struct mdc_op_data *op_data, __u32 mode, __u64 rdev,
                    __u32 flags, const void *lmm, int lmmlen)
 {
         struct mds_rec_create *rec;
@@ -110,7 +108,7 @@ void mdc_open_pack(struct ptlrpc_request *req, int offset,
         rec->cr_mode = mode;
         rec->cr_flags = flags;
         rec->cr_rdev = rdev;
-        rec->cr_time = time;
+        rec->cr_time = op_data->mod_time;
         rec->cr_suppgid = op_data->ctxt.gid1;
 
         if (op_data->name) {
@@ -126,8 +124,7 @@ void mdc_open_pack(struct ptlrpc_request *req, int offset,
         }
 }
 
-void mdc_setattr_pack(struct ptlrpc_request *req,
-                      struct mdc_op_data *data,
+void mdc_setattr_pack(struct ptlrpc_request *req, struct mdc_op_data *data,
                       struct iattr *iattr, void *ea, int ealen,
                       void *ea2, int ea2len)
 {
@@ -187,6 +184,7 @@ void mdc_unlink_pack(struct ptlrpc_request *req, int offset,
         rec->ul_suppgid = data->ctxt.gid1;
         rec->ul_fid1 = data->fid1;
         rec->ul_fid2 = data->fid2;
+        rec->ul_time = data->mod_time;
 
         tmp = lustre_msg_buf(req->rq_reqmsg, offset + 1, data->namelen + 1);
         LASSERT (tmp != NULL);
@@ -209,6 +207,7 @@ void mdc_link_pack(struct ptlrpc_request *req, int offset,
         rec->lk_suppgid2 = data->ctxt.gid2;
         rec->lk_fid1 = data->fid1;
         rec->lk_fid2 = data->fid2;
+        rec->lk_time = data->mod_time;
 
         tmp = lustre_msg_buf(req->rq_reqmsg, offset + 1, data->namelen + 1);
         LOGL0(data->name, data->namelen, tmp);
@@ -238,6 +237,7 @@ void mdc_rename_pack(struct ptlrpc_request *req, int offset,
                 rec->rn_suppgid2 = -1;
         rec->rn_fid1 = data->fid1;
         rec->rn_fid2 = data->fid2;
+        rec->rn_time = data->mod_time;
 
         tmp = lustre_msg_buf(req->rq_reqmsg, offset + 1, oldlen + 1);
         LOGL0(old, oldlen, tmp);
index 650c771..66d182c 100644 (file)
@@ -198,6 +198,7 @@ static int mds_link_unpack(struct ptlrpc_request *req, int offset,
         r->ur_suppgid2 = rec->lk_suppgid2;
         r->ur_fid1 = &rec->lk_fid1;
         r->ur_fid2 = &rec->lk_fid2;
+        r->ur_time = rec->lk_time;
 
         LASSERT_REQSWAB (req, offset + 1);
         r->ur_name = lustre_msg_string (req->rq_reqmsg, offset + 1, 0);
@@ -226,6 +227,7 @@ static int mds_unlink_unpack(struct ptlrpc_request *req, int offset,
         r->ur_suppgid2 = -1;
         r->ur_fid1 = &rec->ul_fid1;
         r->ur_fid2 = &rec->ul_fid2;
+        r->ur_time = rec->ul_time;
 
         LASSERT_REQSWAB (req, offset + 1);
         r->ur_name = lustre_msg_string(req->rq_reqmsg, offset + 1, 0);
@@ -253,6 +255,7 @@ static int mds_rename_unpack(struct ptlrpc_request *req, int offset,
         r->ur_suppgid2 = rec->rn_suppgid2;
         r->ur_fid1 = &rec->rn_fid1;
         r->ur_fid2 = &rec->rn_fid2;
+        r->ur_time = rec->rn_time;
 
         LASSERT_REQSWAB (req, offset + 1);
         r->ur_name = lustre_msg_string(req->rq_reqmsg, offset + 1, 0);
index ae6e217..8a66025 100644 (file)
@@ -174,14 +174,6 @@ check_mds_status_req (void)
 }
 
 void
-check_mds_fileh_body (void)
-{
-       BLANK_LINE ();
-       CHECK_STRUCT (mds_fileh_body);
-       CHECK_MEMBER (mds_fileh_body, f_fid);
-}
-
-void
 check_mds_body (void)
 {
        BLANK_LINE ();
@@ -263,6 +255,7 @@ check_mds_rec_link (void)
        CHECK_MEMBER (mds_rec_link, lk_suppgid2);
        CHECK_MEMBER (mds_rec_link, lk_fid1);
        CHECK_MEMBER (mds_rec_link, lk_fid2);
+       CHECK_MEMBER (mds_rec_link, lk_time);
 }
 
 void
@@ -274,11 +267,11 @@ check_mds_rec_unlink (void)
        CHECK_MEMBER (mds_rec_unlink, ul_fsuid);
        CHECK_MEMBER (mds_rec_unlink, ul_fsgid);
        CHECK_MEMBER (mds_rec_unlink, ul_cap);
-       CHECK_MEMBER (mds_rec_unlink, ul_reserved);
-       CHECK_MEMBER (mds_rec_unlink, ul_mode);
        CHECK_MEMBER (mds_rec_unlink, ul_suppgid);
+       CHECK_MEMBER (mds_rec_unlink, ul_mode);
        CHECK_MEMBER (mds_rec_unlink, ul_fid1);
        CHECK_MEMBER (mds_rec_unlink, ul_fid2);
+       CHECK_MEMBER (mds_rec_unlink, ul_time);
 }
 
 void
@@ -294,6 +287,7 @@ check_mds_rec_rename (void)
        CHECK_MEMBER (mds_rec_rename, rn_suppgid2);
        CHECK_MEMBER (mds_rec_rename, rn_fid1);
        CHECK_MEMBER (mds_rec_rename, rn_fid2);
+       CHECK_MEMBER (mds_rec_rename, rn_time);
 }
 
 void
@@ -571,7 +565,6 @@ main (int argc, char **argv)
        check_ost_body ();
        check_ll_fid ();
        check_mds_status_req ();
-       check_mds_fileh_body ();
        check_mds_body ();
        check_mds_rec_setattr ();
        check_mds_rec_create ();