Re: another nfs puzzle

From: Peter Staubach
Date: Wed Dec 07 2005 - 09:00:46 EST


Kenny Simpson wrote:

Hi again,
I am seeing some odd behavior with O_DIRECT. If a file opened with O_DIRECT has a page mmap'd,
and the file is extended via pwrite, then the mmap'd region seems to get lost - i.e. it neither
takes up system memory, nor does it get written out.



I don't think that I understand why or how the kernel allows a file,
which was opened with O_DIRECT, to be mmap'd. The use of O_DIRECT
implies no caching and mmap implies the use of caching.

I do understand that the kernel can flush and invalidate pages in
the ranges of the i/o operations done, but does it really guarantee
that a pagein operation won't happen on a page within the range of
a region of the file being written to using direct i/o? If it does
not, then any consistency guarantees are gone and data corruption
can occur.

Thanx...

ps
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/