Justus Winter, le Thu 20 Mar 2014 14:01:18 +0100, a écrit : > find_block may very well return no error but set block to zero. This > indicates that the block in question has not been allocated. Skip > those blocks instead.
Mmm, I don't think we want to skip them. AIUI (but don't take my words for granted, I'm only speculating without checking the details), what can roughly happens can be dd < /dev/zero > blip bs=1M count=1 seek=1000 then mmap it to some process (MAP_SHARED), then write to the mapped memory, and then sync that. AIUI pager_write_page ends up being called to write back the values to the file, and even if it's not allocated yet, we want to write that. That being said, I don't manage to reproduce the scenario and get a crash there. Do you have a reproducer? Samuel