ML<I>::set_state_uninitialized();
}
+template <typename I>
+bool ExclusiveLock<I>::accept_request(OperationRequestType request_type) const {
+ int ret_val; // ignored
+ return accept_request(request_type, &ret_val);
+}
+
template <typename I>
bool ExclusiveLock<I>::accept_request(OperationRequestType request_type,
int *ret_val) const {
(m_request_blocked_count == 0 ||
m_image_ctx.get_exclusive_lock_policy()->accept_blocked_request(
request_type)));
- if (ret_val != nullptr) {
- *ret_val = accept_request ? 0 : m_request_blocked_ret_val;
- }
+ *ret_val = accept_request ? 0 : m_request_blocked_ret_val;
- ldout(m_image_ctx.cct, 20) << "=" << accept_request << " (request_type="
- << request_type << ")" << dendl;
+ ldout(m_image_ctx.cct, 20) << "=" << accept_request << " ret_val=" << *ret_val
+ << " (request_type=" << request_type << ")" << dendl;
return accept_request;
}
ExclusiveLock(ImageCtxT &image_ctx);
+ bool accept_request(exclusive_lock::OperationRequestType request_type) const;
bool accept_request(exclusive_lock::OperationRequestType request_type,
int *ret_val) const;
bool accept_ops() const;
}
if (image_ctx.exclusive_lock->is_lock_owner() &&
- image_ctx.exclusive_lock->accept_request(request_type, nullptr)) {
+ image_ctx.exclusive_lock->accept_request(request_type)) {
send_local_request();
owner_lock.unlock_shared();
return;
std::unique_lock 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_request(request_type, nullptr))) {
+ !m_image_ctx.exclusive_lock->accept_request(request_type))) {
attempting_lock = true;
m_image_ctx.exclusive_lock->block_requests(0);