From 8260ed21404ed6ea7ae40ae7914d7e30e8388d42 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh-Weinraub Date: Tue, 8 Apr 2008 23:48:50 +0300 Subject: [PATCH] kclient: reverting ctime changes -- mds controls the ctime value --- src/kernel/inode.c | 15 ++------------- src/mds/Server.cc | 3 +-- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/src/kernel/inode.c b/src/kernel/inode.c index a8a7f293bb2e6..ba8af2e9ac9c1 100644 --- a/src/kernel/inode.c +++ b/src/kernel/inode.c @@ -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); diff --git a/src/mds/Server.cc b/src/mds/Server.cc index befc94323cbb1..1c78e2424add4 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -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(); -- 2.39.5