ceph watch/notify

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



hi all
  When the notify payload of snap create is sent to watchers. Only the exclusive
locker owner can send snap create request to osd. But here
https://github.com/ceph/ceph/blob/master/src/librbd/ImageWatcher.cc#L819
It is not estimate whether it is owner.  I do not why, can someone explain
more about this? Thanks.

May be i miss something? Or i do not understand it correctly.
Thanks a lot.



template <typename I>
bool ImageWatcher<I>::handle_payload(const SnapCreatePayload &payload,
            C_NotifyAck *ack_ctx) {
  RWLock::RLocker l(m_image_ctx.owner_lock);
  if (m_image_ctx.exclusive_lock != nullptr) {// here.....
    int r;
    if (m_image_ctx.exclusive_lock->accept_requests(&r)) {
      ldout(m_image_ctx.cct, 10) << this << " remote snap_create request: "
        << payload.snap_name << dendl;

      m_image_ctx.operations->execute_snap_create(payload.snap_name,
                                                  new
C_ResponseMessage(ack_ctx),
                                                  0, false);
      return false;
    } else if (r < 0) {
      ::encode(ResponseMessage(r), ack_ctx->out);
    }
  }
  return true;
}








-- 
谦谦君子
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux