Re: 1352 NUL bytes at the end of a page? (was Re: Assertion `s && s->tree' failed: The saga continues.)

Andrew Morton
2004-05-17T07:25:42Z

Linus Torvalds <torvalds@osdl.org> wrote:
>
> Andrew, the obvious culprit would be the memset() in fs/buffer.c
> (block_write_full_page()

There is one race.

If an application does mmap(MAP_SHARED) of, say, a 2048 byte file and then
extends it:

p = mmap(..., fd, ...);
ftructate(fd, 4096);
p[3000] = 1;

A racing block_write_full_page() could fail to notice the extended i_size
and would decide to zap those 2048 bytes anyway.