For direct read failures, the locking is such that we cannot
immediately send a new IO without deadlocking. This new interface
allows an op to be sent as an asio post.
Signed-off-by: Alex Ainscow <aainscow@uk.ibm.com>
// read | write ---------------------------
+
+void Objecter::op_post_submit(Op* op) {
+ boost::asio::post(service, [this, op]() {
+ op_submit(op);
+ });
+}
+
void Objecter::op_submit(Op *op, ceph_tid_t *ptid, int *ctx_budget)
{
shunique_lock rl(rwlock, ceph::acquire_shared);
int *ctx_budget = NULL);
// public interface
public:
+ void op_post_submit(Op *op);
void op_submit(Op *op, ceph_tid_t *ptid = NULL, int *ctx_budget = NULL);
bool is_active() {
std::shared_lock l(rwlock);