summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Lang <sam.lang@inktank.com>2012-11-27 14:50:55 -0600
committerSam Lang <sam.lang@inktank.com>2012-11-27 15:01:58 -0600
commit601dbaf5b8bc1065ba699a449574c9da9461dd10 (patch)
tree2dd310c6fe9546f12c5fd72dcd27e553e2032f6a
parentda32c596e245de5e4324ac3b36e3596cea588415 (diff)
downloadceph-wip-mtime-incr.tar.gz
client: Properly set ctime on writewip-mtime-incr
Signed-off-by: Sam Lang <sam.lang@inktank.com>
-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);