Comment 72 for bug 2056461

Revision history for this message
In , asmadeus (asmadeus-linux-kernel-bugs) wrote :

That won't be enough imo, there are two problems:
- We're truncating the read request to the cached i_size
- that odd O_NONBLOCK behaviour on regular files 9p used to have

In this particular reproducer O_NONBLOCK happened to be set (in eofcat) so that part of the discussion came up, but the problem here really is the truncated IO -- in cache=none, we shouldn't rely on prior knowledge at all, so if the IO asked for a 1000 bytes read we should try to read 1000 bytes even if we previously had i_size=10 in the inode

Since nothing else refreshes i_size here, just bailing out because of the O_NONBLOCK won't make the request proceed further

@Christian at this point I feel that we have a clear enough understanding of the problem that it'll be faster to fix than to revert; I'm sorry about the whole thing that should have been much smoother but we're almost there, please hang on a little bit more.