Hi Matt, Thanks for the careful read.
You are right about the post loop access. list_move_tail() reads dirty_journal->dirty_entry. Container_of cancellation lands that read on the head's .next field. The memory is bounded and well defined. Calling this UB in my original mail overstated the case. The practical impact is cosmetic. I should not have framed it that way. You are also right about the timeline. The Koschel 2022 sweep predates dm-vdo. Citing it as a missed site was off the mark. Sorry for that. I will not pursue a [PATCH] for this site. The inline insertion shape you suggested would be cleaner than the current code. But I agree it does not warrant a standalone series in isolation. If a future dm-vdo refactor touches this function for other reasons, that would be the natural time to fold it in. Thanks again, and sorry for the noise. Maoyi Xie https://maoyixie.com/

