]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
kclient: some more ctime changes
authorYehuda Sadeh-Weinraub <yehuda@yehuda>
Tue, 8 Apr 2008 13:25:38 +0000 (16:25 +0300)
committerYehuda Sadeh-Weinraub <yehuda@yehuda>
Tue, 8 Apr 2008 13:27:55 +0000 (16:27 +0300)
src/kernel/inode.c

index 20b77a2570754ac40bb702c34e178d44ce9866b2..677ed52063e0599a690708195e7c693f1f9f8be2 100644 (file)
@@ -1213,8 +1213,12 @@ int ceph_setattr(struct dentry *dentry, struct iattr *attr)
                /* do i hold CAP_EXCL? */
                if (ceph_caps_issued(ci) & CEPH_CAP_EXCL) {
                        dout(10, "utime holding EXCL, doing locally\n");
-                       inode->i_atime = attr->ia_atime;
-                       inode->i_mtime = attr->ia_mtime;
+                       if (ia_valid & ATTR_ATIME)
+                               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) &&