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

Reply via email to