summaryrefslogtreecommitdiff
path: root/src/client/Client.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/Client.cc')
-rw-r--r--src/client/Client.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/client/Client.cc b/src/client/Client.cc
index a316c29d1e7..a9ff1e6bf9b 100644
--- a/src/client/Client.cc
+++ b/src/client/Client.cc
@@ -5765,14 +5765,22 @@ int Client::_write(Fh *f, int64_t offset, uint64_t size, const char *buf)
ldout(cct, 7) << "wrote to " << totalwritten+offset << ", leaving file size at " << in->size << dendl;
}
- // mtime
utime_t curtime = ceph_clock_now(cct);
+ // mtime
if (in->mtime > curtime) {
// can't go backwards, increment mtime by 1 nanosec
in->mtime += 0.000000001;
} else {
in->mtime = curtime;
}
+
+ // ctime
+ if (in->ctime > curtime) {
+ // can't go backwards, increment mtime by 1 nanosec
+ in->ctime += 0.000000001;
+ } else {
+ in->ctime = curtime;
+ }
mark_caps_dirty(in, CEPH_CAP_FILE_WR);
put_cap_ref(in, CEPH_CAP_FILE_WR);