RWLock::RLocker l(m_image_ctx.owner_lock);
if (m_image_ctx.exclusive_lock != nullptr &&
- m_image_ctx.exclusive_lock->is_lock_owner()) {
+ m_image_ctx.exclusive_lock->accept_requests()) {
// need to send something back so the client can detect a missing leader
::encode(ResponseMessage(0), ack_ctx->out);
RWLock::RLocker l(m_image_ctx.owner_lock);
if (m_image_ctx.exclusive_lock != nullptr &&
- m_image_ctx.exclusive_lock->is_lock_owner()) {
+ m_image_ctx.exclusive_lock->accept_requests()) {
bool new_request;
Context *ctx;
ProgressContext *prog_ctx;
C_NotifyAck *ack_ctx) {
RWLock::RLocker l(m_image_ctx.owner_lock);
if (m_image_ctx.exclusive_lock != nullptr &&
- m_image_ctx.exclusive_lock->is_lock_owner()) {
+ m_image_ctx.exclusive_lock->accept_requests()) {
bool new_request;
Context *ctx;
ProgressContext *prog_ctx;
C_NotifyAck *ack_ctx) {
RWLock::RLocker l(m_image_ctx.owner_lock);
if (m_image_ctx.exclusive_lock != nullptr &&
- m_image_ctx.exclusive_lock->is_lock_owner()) {
+ m_image_ctx.exclusive_lock->accept_requests()) {
ldout(m_image_ctx.cct, 10) << this << " remote snap_create request: "
<< payload.snap_name << dendl;
C_NotifyAck *ack_ctx) {
RWLock::RLocker l(m_image_ctx.owner_lock);
if (m_image_ctx.exclusive_lock != nullptr &&
- m_image_ctx.exclusive_lock->is_lock_owner()) {
+ m_image_ctx.exclusive_lock->accept_requests()) {
ldout(m_image_ctx.cct, 10) << this << " remote snap_rename request: "
<< payload.snap_id << " to "
<< payload.snap_name << dendl;
C_NotifyAck *ack_ctx) {
RWLock::RLocker l(m_image_ctx.owner_lock);
if (m_image_ctx.exclusive_lock != nullptr &&
- m_image_ctx.exclusive_lock->is_lock_owner()) {
+ m_image_ctx.exclusive_lock->accept_requests()) {
ldout(m_image_ctx.cct, 10) << this << " remote snap_remove request: "
<< payload.snap_name << dendl;
C_NotifyAck *ack_ctx) {
RWLock::RLocker owner_locker(m_image_ctx.owner_lock);
if (m_image_ctx.exclusive_lock != nullptr &&
- m_image_ctx.exclusive_lock->is_lock_owner()) {
+ m_image_ctx.exclusive_lock->accept_requests()) {
ldout(m_image_ctx.cct, 10) << this << " remote snap_protect request: "
<< payload.snap_name << dendl;
C_NotifyAck *ack_ctx) {
RWLock::RLocker owner_locker(m_image_ctx.owner_lock);
if (m_image_ctx.exclusive_lock != nullptr &&
- m_image_ctx.exclusive_lock->is_lock_owner()) {
+ m_image_ctx.exclusive_lock->accept_requests()) {
ldout(m_image_ctx.cct, 10) << this << " remote snap_unprotect request: "
<< payload.snap_name << dendl;
C_NotifyAck *ack_ctx) {
RWLock::RLocker l(m_image_ctx.owner_lock);
if (m_image_ctx.exclusive_lock != nullptr &&
- m_image_ctx.exclusive_lock->is_lock_owner()) {
+ m_image_ctx.exclusive_lock->accept_requests()) {
bool new_request;
Context *ctx;
ProgressContext *prog_ctx;
C_NotifyAck *ack_ctx) {
RWLock::RLocker owner_locker(m_image_ctx.owner_lock);
if (m_image_ctx.exclusive_lock != nullptr &&
- m_image_ctx.exclusive_lock->is_lock_owner()) {
+ m_image_ctx.exclusive_lock->accept_requests()) {
ldout(m_image_ctx.cct, 10) << this << " remote rename request: "
<< payload.image_name << dendl;
C_NotifyAck *ack_ctx) {
RWLock::RLocker l(m_image_ctx.owner_lock);
if (m_image_ctx.exclusive_lock != nullptr &&
- m_image_ctx.exclusive_lock->is_lock_owner()) {
+ m_image_ctx.exclusive_lock->accept_requests()) {
::encode(ResponseMessage(-EOPNOTSUPP), ack_ctx->out);
}
return true;
void ImageWatcher::reregister_watch() {
ldout(m_image_ctx.cct, 10) << this << " re-registering image watch" << dendl;
- bool was_lock_owner = false;
+ bool releasing_lock = false;
C_SaferCond release_lock_ctx;
{
RWLock::WLocker l(m_image_ctx.owner_lock);
- if (m_image_ctx.exclusive_lock != nullptr &&
- m_image_ctx.exclusive_lock->is_lock_owner()) {
- was_lock_owner = true;
+ if (m_image_ctx.exclusive_lock != nullptr) {
+ releasing_lock = true;
m_image_ctx.exclusive_lock->release_lock(&release_lock_ctx);
}
}
int r;
- if (was_lock_owner) {
+ if (releasing_lock) {
r = release_lock_ctx.wait();
assert(r == 0);
}