diff options
author | Dan Mick <dan.mick@inktank.com> | 2012-05-30 16:48:37 -0700 |
---|---|---|
committer | Dan Mick <dan.mick@inktank.com> | 2012-05-30 16:48:37 -0700 |
commit | c80bd9daea0c436fcf0af33fea9fc6b961279756 (patch) | |
tree | 1c2672c50bd50a6f2253c97b51c6d5f381485db1 /src/librbd.cc | |
parent | 04e66b420174d49e0f773cab1f6ef213dadc3397 (diff) | |
download | ceph-c80bd9daea0c436fcf0af33fea9fc6b961279756.tar.gz |
librbd: Simplify timing init
Remove possibility of set_start_time before set_ictx error
Signed-off-by: Dan Mick <dan.mick@inktank.com>
Diffstat (limited to 'src/librbd.cc')
-rw-r--r-- | src/librbd.cc | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/src/librbd.cc b/src/librbd.cc index 2cd78a38ccc..a064e013e62 100644 --- a/src/librbd.cc +++ b/src/librbd.cc @@ -406,7 +406,7 @@ namespace librbd { AioCompletion() : lock("AioCompletion::lock", true), done(false), rval(0), complete_cb(NULL), complete_arg(NULL), rbd_comp(NULL), pending_count(1), - ref(1), released(false), start_time(0) { + ref(1), released(false) { } ~AioCompletion() { } @@ -436,25 +436,19 @@ namespace librbd { lock.Unlock(); } - void set_start_time() { - start_time = ceph_clock_now(ictx->cct); - } - - void set_ictx(ImageCtx *i) { + void init_time(ImageCtx *i, aio_type_t t) { ictx = i; - } - - void set_aio_type(aio_type_t t) { aio_type = t; + start_time = ceph_clock_now(ictx->cct); } void complete() { utime_t elapsed; assert(lock.is_locked()); + elapsed = ceph_clock_now(ictx->cct) - start_time; if (complete_cb) { complete_cb(rbd_comp, complete_arg); } - elapsed = ceph_clock_now(ictx->cct) - start_time; switch (aio_type) { case AIO_TYPE_READ: ictx->perfcounter->finc(l_librbd_aio_rd_latency, elapsed); break; @@ -1911,9 +1905,7 @@ int aio_write(ImageCtx *ictx, uint64_t off, size_t len, const char *buf, return -EROFS; c->get(); - c->set_ictx(ictx); - c->set_start_time(); - c->set_aio_type(AIO_TYPE_WRITE); + c->init_time(ictx, AIO_TYPE_WRITE); for (uint64_t i = start_block; i <= end_block; i++) { ictx->lock.Lock(); string oid = get_block_oid(ictx->header, i); @@ -1979,9 +1971,7 @@ int aio_discard(ImageCtx *ictx, uint64_t off, uint64_t len, AioCompletion *c) v.reserve(end_block - start_block + 1); c->get(); - c->set_start_time(); - c->set_ictx(ictx); - c->set_aio_type(AIO_TYPE_DISCARD); + c->init_time(ictx, AIO_TYPE_DISCARD); for (uint64_t i = start_block; i <= end_block; i++) { ictx->lock.Lock(); string oid = get_block_oid(ictx->header, i); @@ -2061,9 +2051,7 @@ int aio_read(ImageCtx *ictx, uint64_t off, size_t len, uint64_t left = len; c->get(); - c->set_start_time(); - c->set_ictx(ictx); - c->set_aio_type(AIO_TYPE_READ); + c->init_time(ictx, AIO_TYPE_READ); for (uint64_t i = start_block; i <= end_block; i++) { bufferlist bl; ictx->lock.Lock(); |