diff --git a/src/librbd/io/SimpleSchedulerObjectDispatch.cc b/src/librbd/io/SimpleSchedulerObjectDispatch.cc index 6b50c46ad52..cd2ffb1975d 100644 --- a/src/librbd/io/SimpleSchedulerObjectDispatch.cc +++ b/src/librbd/io/SimpleSchedulerObjectDispatch.cc @@ -105,7 +105,8 @@ bool SimpleSchedulerObjectDispatch::ObjectRequests::try_delay_request( // try to merge back to an existing request iter = m_delayed_requests.lower_bound(object_off); - if (iter == m_delayed_requests.end() || iter->first > object_off) { + if (iter != m_delayed_requests.begin() && + (iter == m_delayed_requests.end() || iter->first > object_off)) { iter--; } if (iter != m_delayed_requests.end() &&