On Thu, Jul 18, 2024 at 09:02:09AM -0400, Brian Foster wrote: > @@ -655,6 +655,8 @@ bool filemap_range_has_writeback(struct address_space *mapping, > folio_test_writeback(folio)) > break; > } > + if (folio) > + *start_byte = folio_pos(folio); > rcu_read_unlock(); > return folio != NULL; > } Distressingly, this is unsafe. We have no reference on the folio at this point (not one that matters, anyway). We have the rcu read lock, yes, but that doesn't protect enough to make folio_pos() safe. Since we do't have folio_get() here, the folio can be freed, sent back to the page allocator, and then reallocated to literally any purpose. As I'm reviewing patch 1/4, I have no idea if this is just a hint and you can survive it being completely wrong, or if this is going to cause problems.