This change is not cherry-picked from master because, in master,
the BlockingAioThrottle does cover these cases with a lock.
Fixes: https://tracker.ceph.com/issues/39660
Signed-off-by: Ilsoo Byun <ilsoobyun@linecorp.com>
if (cost > window) {
p->result = -EDEADLK; // would never succeed
+ std::unique_lock lock{mutex};
completed.push_back(*p);
} else {
get(*p);
}
}
p.release();
+ std::unique_lock lock{mutex};
return std::move(completed);
}
if (cost > window) {
p->result = -EDEADLK; // would never succeed
+ std::unique_lock lock{mutex};
completed.push_back(*p);
} else {
get(*p);
}
}
p.release();
+ std::unique_lock lock{mutex};
return std::move(completed);
}