if (r == -EOVERFLOW || m_overflowed) {
if (iter != m_in_flight_appends.end()) {
m_overflowed = true;
- append_overflowed(tid);
} else {
// must have seen an overflow on a previous append op
assert(r == -EOVERFLOW && m_overflowed);
// notify of overflow once all in-flight ops are complete
if (m_in_flight_tids.empty() && !m_aio_scheduled) {
+ append_overflowed();
notify_handler();
}
return;
m_in_flight_flushes_cond.Signal();
}
-void ObjectRecorder::append_overflowed(uint64_t tid) {
+void ObjectRecorder::append_overflowed() {
ldout(m_cct, 10) << __func__ << ": " << m_oid << " append overflowed"
<< dendl;
assert(m_lock->is_locked());
assert(!m_in_flight_appends.empty());
- assert(m_in_flight_appends.begin()->first == tid);
cancel_append_task();
bool append(const AppendBuffer &append_buffer, bool *schedule_append);
bool flush_appends(bool force);
void handle_append_flushed(uint64_t tid, int r);
- void append_overflowed(uint64_t tid);
+ void append_overflowed();
void send_appends(AppendBuffers *append_buffers);
void send_appends_aio();