The only solution I can think of is to use the iounit value the file server returns (and not the msize as we do now). If iounit is 0, allow short reads, if iounit is more than zero and the read returns less that the iounit, don't try anymore. This kind of passes the problem to the file server, but I guess that's the right place to solve it anyway. Thanks, Lucho On Tue, Aug 17, 2010 at 2:10 PM, Venkateswararao Jujjuri (JV) <jvrao@xxxxxxxxxxxxxxxxxx> wrote: > Latchesar Ionkov wrote: >> What problem does that change solve? It adds an additional call when >> EOF is reached. The way most user apps are written, that'll mean two >> calls that return Rread count 0. >> >> I was thinking of doing a similar change, but decided against it. > > Yeah I ran into the issue when tried with o_direct and dd. > > Can we depend on the application retrying? > Yes I also observed the behavior you are mentioning (2 Rreads returning 0) > Wondering if we have a better way to address this. > > Thanks, > JV > >> >> Thanks, >> Lucho >> >> On Tue, Aug 17, 2010 at 12:46 PM, Venkateswararao Jujjuri (JV) >> <jvrao@xxxxxxxxxxxxxxxxxx> wrote: >>> A simple fix to retry on short reads. >>> >>> Signed-off-by: Venkateswararao Jujjuri <jvrao@xxxxxxxxxxxxxxxxxx> >>> --- >>> fs/9p/vfs_file.c | 2 +- >>> 1 files changed, 1 insertions(+), 1 deletions(-) >>> >>> diff --git a/fs/9p/vfs_file.c b/fs/9p/vfs_file.c >>> index 2695491..cae984d 100644 >>> --- a/fs/9p/vfs_file.c >>> +++ b/fs/9p/vfs_file.c >>> @@ -166,7 +166,7 @@ v9fs_file_readn(struct file *filp, char *data, char __user *udata, u32 count, >>> offset += n; >>> count -= n; >>> total += n; >>> - } while (count > 0 && n == size); >>> + } while (count > 0); >>> >>> if (n < 0) >>> total = n; >>> -- >>> 1.6.5.2 >>> >>> >>> ------------------------------------------------------------------------------ >>> This SF.net email is sponsored by >>> >>> Make an app they can't live without >>> Enter the BlackBerry Developer Challenge >>> http://p.sf.net/sfu/RIM-dev2dev >>> _______________________________________________ >>> V9fs-developer mailing list >>> V9fs-developer@xxxxxxxxxxxxxxxxxxxxx >>> https://lists.sourceforge.net/lists/listinfo/v9fs-developer >>> > > > -- 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