]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: Add set_event_notify to AioImageRequestWQ
authorHaomai Wang <haomai@xsky.com>
Wed, 18 Nov 2015 07:43:51 +0000 (15:43 +0800)
committerHaomai Wang <haomai@xsky.com>
Tue, 1 Dec 2015 02:03:54 +0000 (10:03 +0800)
Signed-off-by: Haomai Wang <haomai@xsky.com>
src/librbd/AioImageRequestWQ.cc

index d1cb86edf423d749976cb7467a29a3648f9c5a92..b0e7d3ad03995bdb6e01ec23c610873066e3a05b 100644 (file)
@@ -94,6 +94,9 @@ void AioImageRequestWQ::aio_read(AioCompletion *c, uint64_t off, uint64_t len,
                  << "completion=" << c << ", off=" << off << ", "
                  << "len=" << len << ", " << "flags=" << op_flags << dendl;
 
+  if (ictx->event_socket.is_valid())
+    c->set_event_notify(true);
+
   RWLock::RLocker owner_locker(m_image_ctx.owner_lock);
   if (m_image_ctx.non_blocking_aio) {
     queue(new AioImageRead(m_image_ctx, c, off, len, buf, pbl, op_flags));
@@ -110,6 +113,9 @@ void AioImageRequestWQ::aio_write(AioCompletion *c, uint64_t off, uint64_t len,
                  << "completion=" << c << ", off=" << off << ", "
                  << "len=" << len << ", flags=" << op_flags << dendl;
 
+  if (ictx->event_socket.is_valid())
+    c->set_event_notify(true);
+
   RWLock::RLocker owner_locker(m_image_ctx.owner_lock);
   if (m_image_ctx.non_blocking_aio || is_journal_required() ||
       writes_blocked()) {
@@ -127,6 +133,9 @@ void AioImageRequestWQ::aio_discard(AioCompletion *c, uint64_t off,
                  << "completion=" << c << ", off=" << off << ", len=" << len
                  << dendl;
 
+  if (ictx->event_socket.is_valid())
+    c->set_event_notify(true);
+
   RWLock::RLocker owner_locker(m_image_ctx.owner_lock);
   if (m_image_ctx.non_blocking_aio || is_journal_required() ||
       writes_blocked()) {
@@ -142,6 +151,9 @@ void AioImageRequestWQ::aio_flush(AioCompletion *c) {
   ldout(cct, 20) << "aio_flush: ictx=" << &m_image_ctx << ", "
                  << "completion=" << c << dendl;
 
+  if (ictx->event_socket.is_valid())
+    c->set_event_notify(true);
+
   RWLock::RLocker owner_locker(m_image_ctx.owner_lock);
   if (m_image_ctx.non_blocking_aio || is_journal_required() ||
       writes_blocked() || !writes_empty()) {