#define dout_prefix *_dout << objecter->messenger->get_myname() \
<< ".journaler." << name << (readonly ? "(ro) ":"(rw) ")
+using namespace std;
using std::chrono::seconds;
return;
}
+ // Let the caller know that the operation has failed or was intentionally
+ // failed since the caller has been blocklisted.
+ if (r == -EBLOCKLISTED) {
+ onfinish->complete(r);
+ return;
+ }
+
ceph_assert(!r); //if we get an error, we're boned
_reprobe(onfinish);
}
{
lock_guard l(lock);
if (is_stopping()) {
- onsafe->complete(-EAGAIN);
+ if (onsafe)
+ onsafe->complete(-EAGAIN);
return;
}
_wait_for_flush(onsafe);
{
lock_guard l(lock);
if (is_stopping()) {
- onsafe->complete(-EAGAIN);
+ if (onsafe)
+ onsafe->complete(-EAGAIN);
return;
}
_flush(wrap_finisher(onsafe));