On Thursday, January 04, 2001 10:48:13 AM +0100 Christoph Rohland
<[EMAIL PROTECTED]> wrote:

> Chris Mason <[EMAIL PROTECTED]> writes:
>> Just noticed the filemap_fdatasync code doesn't check the return value
>> from writepage.  Linus, would you take a patch that redirtied the page,
>> puts it back onto the dirty list (at the tail), and unlocks the page
>> when writepage returns 1?
>> 
>> That would loop forever if the writepage func kept returning 1 though...I
>> think that's what we want, unless someone like ramfs made a writepage
>> func that always returned 1.
> 
> shmem has such a writepage for locked shm segments. It also always
> return 1 if the swap space is exhausted. So everybody using shared
> anonymous, SYSV shared or POSIX shared memory can hit this.
> 
> I invented the return code 1 exactly to be able to handle this.
> 

Yes, right now the shmem writepage calls are the only ones returning one at
all.  But, the question of how to properly fsync/msync these kinds of pages
still stands.  Returning from an fsync before writing them isn't correct.

Either way, filemap_fdatasync needs fixing, since it drops the dirty bit on
these pages.  They'll never get written after going through it.

-chris

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to