Miklos Szeredi wrote: > On Tue, 21 Oct 2008, steve@xxxxxxxxxx wrote: > > Well I'm not sure why we'd need to distinguish between "page has not > > been read" and "page has been read but no longer valid". I guess I > > don't understand why those two cases are not the same from the vfs > > and filesystem points of view. > > In the first case the page contains random bytes, in the second case > it contains actual file data, which has become stale, but at some > point in time it _was_ the contents of the file. > > This is a very important distinction for splice(2) for example. > Splice does not actually copy data into the pipe buffer, only > references the pages. And it can reference pages which are not yet > up-to-date. So when the buffers are consumed from the pipe, the > splice code needs to know if the page contains random junk (never > brought up-to-date) or data that is, or once was, valid. So GFS goes to great lengths to ensure that read/write are coherent, so are mmaps (writable or not), but _splice_ is not coherent in the sense that it can send invalid but non-random data? :-) Also, is there still a problem where the data is "valid" but part of the page may have been zero'd by truncate, which is then transmitted by splice? -- Jamie -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html