void JournalMetadata::schedule_watch_reset() {
assert(m_timer_lock->is_locked());
- m_timer->add_event_after(0.1, new C_WatchReset(this));
+ m_timer->add_event_after(1, new C_WatchReset(this));
}
void JournalMetadata::handle_watch_reset() {
int r = m_ioctx.watch2(m_oid, &m_watch_handle, &m_watch_ctx);
if (r < 0) {
- lderr(m_cct) << __func__ << ": failed to watch journal"
- << cpp_strerror(r) << dendl;
+ if (r == -ENOENT) {
+ ldout(m_cct, 5) << __func__ << ": journal header not found" << dendl;
+ } else {
+ lderr(m_cct) << __func__ << ": failed to watch journal"
+ << cpp_strerror(r) << dendl;
+ }
schedule_watch_reset();
} else {
ldout(m_cct, 10) << __func__ << ": reset journal watch" << dendl;
}
void JournalMetadata::handle_watch_error(int err) {
- lderr(m_cct) << "journal watch error: " << cpp_strerror(err) << dendl;
+ if (err == -ENOTCONN) {
+ ldout(m_cct, 5) << "journal watch error: header removed" << dendl;
+ } else {
+ lderr(m_cct) << "journal watch error: " << cpp_strerror(err) << dendl;
+ }
+
Mutex::Locker timer_locker(*m_timer_lock);
Mutex::Locker locker(m_lock);