diff options
-rw-r--r-- | src/client/Client.cc | 10 |
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); |