//if the last free was bigger than need alloc size
return NULL;
}
- if (iter->steps > iter->pf->active_elements) {
- pr_err("ceph_san_log_iter_next: steps: %u, active_elements: %u\n",
- iter->steps, iter->pf->active_elements);
+
+ iter->steps++;
+ /* Store current offset before moving to next */
+ iter->prev_offset = iter->current_offset;
+ /* Move to next entry */
+ iter->current_offset = (iter->current_offset + entry->len) & CEPHSAN_PAGEFRAG_MASK;
+
+ if (iter->steps > iter->pf->active_elements || iter->current_offset == iter->prev_offset) {
+ pr_err("ceph_san_log_iter_next: steps: %u, active_elements: %u, entry_len: %u\n",
+ iter->steps, iter->pf->active_elements, entry->len);
pr_err("ceph_san_log_iter_next: pagefrag details:\n"
" head: %u, tail: %u, current: %llu\n"
" prev_offset: %llu, end_offset: %llu\n"
BUG();
}
- iter->steps++;
- /* Store current offset before moving to next */
- iter->prev_offset = iter->current_offset;
- /* Move to next entry */
- iter->current_offset = (iter->current_offset + entry->len) & CEPHSAN_PAGEFRAG_MASK;
return entry;
}