]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: reverting ctime changes -- mds controls the ctime value
authorYehuda Sadeh-Weinraub <yehuda@yehuda>
Tue, 8 Apr 2008 20:48:50 +0000 (23:48 +0300)
committerYehuda Sadeh-Weinraub <yehuda@yehuda>
Tue, 8 Apr 2008 20:48:50 +0000 (23:48 +0300)
src/kernel/inode.c
src/mds/Server.cc

index a8a7f293bb2e6254bd75c545f4dbdcd6824cb48c..ba8af2e9ac9c1f767695eaa4579cc343cfe41985 100644 (file)
@@ -1174,10 +1174,6 @@ int ceph_setattr(struct dentry *dentry, struct iattr *attr)
                dout(10, "setattr: mtime %ld.%ld -> %ld.%ld\n", 
                     inode->i_mtime.tv_sec, inode->i_mtime.tv_nsec, 
                     attr->ia_mtime.tv_sec, attr->ia_mtime.tv_nsec);
-        if (ia_valid & ATTR_CTIME)
-               dout(10, "setattr: ctime %ld.%ld -> %ld.%ld\n", 
-                    inode->i_ctime.tv_sec, inode->i_ctime.tv_nsec, 
-                    attr->ia_ctime.tv_sec, attr->ia_ctime.tv_nsec);
         if (ia_valid & ATTR_FILE)
                dout(10, "setattr: ATTR_FILE ... hrm!\n");
 
@@ -1219,7 +1215,7 @@ int ceph_setattr(struct dentry *dentry, struct iattr *attr)
        }
 
        /* utimes */
-       if (ia_valid & (ATTR_ATIME|ATTR_MTIME|ATTR_CTIME)) {
+       if (ia_valid & (ATTR_ATIME|ATTR_MTIME)) {
                /* do i hold CAP_EXCL? */
                if (ceph_caps_issued(ci) & CEPH_CAP_EXCL) {
                        dout(10, "utime holding EXCL, doing locally\n");
@@ -1227,17 +1223,13 @@ int ceph_setattr(struct dentry *dentry, struct iattr *attr)
                                inode->i_atime = attr->ia_atime;
                        if (ia_valid & ATTR_MTIME)
                                inode->i_mtime = attr->ia_mtime;
-                       if (ia_valid & ATTR_CTIME)
-                               inode->i_ctime = attr->ia_ctime;
                        return 0;
                }
                if (ceph_inode_lease_valid(inode, CEPH_LOCK_ICONTENT) &&
                    !(((ia_valid & ATTR_ATIME) &&
                       !timespec_equal(&inode->i_atime, &attr->ia_atime)) ||
                      ((ia_valid & ATTR_MTIME) && 
-                      !timespec_equal(&inode->i_mtime, &attr->ia_mtime)) ||
-                     ((ia_valid & ATTR_CTIME) && 
-                      !timespec_equal(&inode->i_ctime, &attr->ia_ctime)))) {
+                      !timespec_equal(&inode->i_mtime, &attr->ia_mtime)))) {
                        dout(10, "lease indicates utimes is a no-op\n");
                        return 0;
                }
@@ -1247,15 +1239,12 @@ int ceph_setattr(struct dentry *dentry, struct iattr *attr)
                reqh = req->r_request->front.iov_base;
                ceph_encode_timespec(&reqh->args.utime.mtime, &attr->ia_mtime);
                ceph_encode_timespec(&reqh->args.utime.atime, &attr->ia_atime);
-               ceph_encode_timespec(&reqh->args.utime.ctime, &attr->ia_ctime);
 
                reqh->args.utime.mask = 0;
                if (ia_valid & ATTR_ATIME)
                        reqh->args.utime.mask |= CEPH_UTIME_ATIME;
                if (ia_valid & ATTR_MTIME)
                        reqh->args.utime.mask |= CEPH_UTIME_MTIME;
-               if (ia_valid & ATTR_CTIME)
-                       reqh->args.utime.mask |= CEPH_UTIME_CTIME;
 
                ceph_mdsc_lease_release(mdsc, inode, 0, CEPH_LOCK_ICONTENT);
                err = ceph_mdsc_do_request(mdsc, req);
index befc94323cbb11aac0fca934301759620cf2b867..1c78e2424add40ec8e69849849e79d5f1caf95e9 100644 (file)
@@ -1619,10 +1619,9 @@ void Server::handle_client_utime(MDRequest *mdr)
     pi->mtime = req->head.args.utime.mtime;
   if (mask & CEPH_UTIME_ATIME)
     pi->atime = req->head.args.utime.atime;
-  if (mask & CEPH_UTIME_CTIME)
-    pi->ctime = req->head.args.utime.ctime;
 
   pi->version = cur->pre_dirty();
+  pi->ctime = g_clock.real_now();
 
   // log + wait
   mdr->ls = mdlog->get_current_segment();