bufferlist *pdirbl)
{
// time the call
- utime_t start = g_clock.real_now();
+ utime_t start = g_clock.now();
bool nojournal = false;
int op = request->get_op();
// -- log times --
if (client_logger) {
- utime_t lat = g_clock.real_now();
+ utime_t lat = g_clock.now();
lat -= request->sent_stamp;
dout(20) << "lat " << lat << dendl;
client_logger->favg(l_c_lat,(double)lat);
dout(10) << "cur file size is " << in->size << dendl;
// time it.
- utime_t start = g_clock.real_now();
+ utime_t start = g_clock.now();
// copy into fresh buffer (since our write may be resub, async)
bufferptr bp;
}
// time
- utime_t lat = g_clock.real_now();
+ utime_t lat = g_clock.now();
lat -= start;
if (client_logger)
client_logger->favg(l_c_wrlat,(double)lat);
}
// mtime
- in->mtime = g_clock.real_now();
+ in->mtime = g_clock.now();
mark_caps_dirty(in, CEPH_CAP_FILE_WR);
put_cap_ref(in, CEPH_CAP_FILE_WR);
class Clock {
protected:
- //utime_t start_offset;
- //utime_t abs_last;
utime_t last;
- utime_t zero;
public:
Clock();
~Clock();
- // real time.
- utime_t real_now() {
- utime_t realnow = now();
- realnow += zero;
- //gettimeofday(&realnow.timeval(), NULL);
- return realnow;
- }
-
utime_t now() {
- //lock.Lock();
struct timeval tv;
gettimeofday(&tv, NULL);
utime_t n(&tv);
- n -= zero;
if (n < last) {
//derr << "WARNING: clock jumped backwards from " << last << " to " << n << dendl;
n = last; // clock jumped backwards!
} else
last = n;
- //lock.Unlock();
return n;
}
+
utime_t recent_now() {
return last;
}
- void realify(utime_t& t) {
- t += zero;
- }
-
void make_timespec(utime_t& t, struct timespec *ts) {
- utime_t real = t;
- realify(real);
+ utime_t time = t;
memset(ts, 0, sizeof(*ts));
- ts->tv_sec = real.sec();
- ts->tv_nsec = real.nsec();
+ ts->tv_sec = time.sec();
+ ts->tv_nsec = time.nsec();
}
// absolute time
time_t gettime() {
- return real_now().sec();
+ return now().sec();
}
};
// create inode.
- mdr->now = g_clock.real_now();
+ mdr->now = g_clock.now();
SnapRealm *realm = diri->find_snaprealm(); // use directory's realm; inode isn't attached yet.
snapid_t follows = realm->get_newest_seq();
dir->verify_fragstat();
#endif
- mdr->now = g_clock.real_now();
+ mdr->now = g_clock.now();
snapid_t snapid = mdr->snapid;
pi = cur->project_inode();
- utime_t now = g_clock.real_now();
+ utime_t now = g_clock.now();
if (mask & CEPH_SETATTR_MODE)
pi->mode = (pi->mode & ~07777) | (req->head.args.setattr.mode & 07777);
// prepare
inode_t *pi = in->project_inode();
- pi->mtime = pi->ctime = g_clock.real_now();
+ pi->mtime = pi->ctime = g_clock.now();
pi->version = in->pre_dirty();
pi->truncate_from = pi->size;
inode_t *pi = cur->project_inode();
pi->layout = layout;
pi->version = cur->pre_dirty();
- pi->ctime = g_clock.real_now();
+ pi->ctime = g_clock.now();
// log + wait
mdr->ls = mdlog->get_current_segment();
map<string,bufferptr> *px = new map<string,bufferptr>;
inode_t *pi = cur->project_inode(px);
pi->version = cur->pre_dirty();
- pi->ctime = g_clock.real_now();
+ pi->ctime = g_clock.now();
pi->xattr_version++;
px->erase(name);
(*px)[name] = buffer::create(len);
map<string,bufferptr> *px = new map<string,bufferptr>;
inode_t *pi = cur->project_inode(px);
pi->version = cur->pre_dirty();
- pi->ctime = g_clock.real_now();
+ pi->ctime = g_clock.now();
pi->xattr_version++;
px->erase(name);
SnapRealm *realm = dn->get_dir()->inode->find_snaprealm();
snapid_t follows = realm->get_newest_seq();
- mdr->now = g_clock.real_now();
+ mdr->now = g_clock.now();
CInode *newi = prepare_new_inode(mdr, dn->get_dir(), inodeno_t(req->head.ino),
req->head.args.mknod.mode, &layout);
// new inode
SnapRealm *realm = dn->get_dir()->inode->find_snaprealm();
snapid_t follows = realm->get_newest_seq();
- mdr->now = g_clock.real_now();
+ mdr->now = g_clock.now();
unsigned mode = req->head.args.mkdir.mode;
mode &= ~S_IFMT;
if (!mds->locker->acquire_locks(mdr, rdlocks, wrlocks, xlocks))
return;
- mdr->now = g_clock.real_now();
+ mdr->now = g_clock.now();
snapid_t follows = dn->get_dir()->inode->find_snaprealm()->get_newest_seq();
unsigned mode = S_IFLNK | 0777;
// pick mtime
if (mdr->now == utime_t())
- mdr->now = g_clock.real_now();
+ mdr->now = g_clock.now();
// does the target need an anchor?
if (targeti->is_auth()) {
// yay!
if (mdr->now == utime_t())
- mdr->now = g_clock.real_now();
+ mdr->now = g_clock.now();
// NOTE: this is non-optimal. we create an anchor at the old
// location, and then change it. we can do better, but it's more
// -- declare now --
if (mdr->now == utime_t())
- mdr->now = g_clock.real_now();
+ mdr->now = g_clock.now();
// -- prepare witnesses --