mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Trond Myklebust <trond.myklebust@fys.uio.no>
To: joe.korty@ccur.com (Joe Korty)
Cc: linux-kernel@vger.kernel.org
Subject: [RFC] 2.4.20-rc3 change broke NFS
Date: Tue, 11 Mar 2003 22:54:25 +0100	[thread overview]
Message-ID: <15982.23313.285256.769067@charged.uio.no> (raw)
In-Reply-To: <200303111926.TAA13808@rudolph.ccur.com>

>>>>> " " == Joe Korty <jak@rudolph.ccur.com> writes:

     > As the problem does not show up when Linux is also the server,
     > it is possible that the bug is in the PowerMAX OS side.
     > However, the patch made to Linux at that time simply looks
     > *wrong* .. why should errors be returned by a NFS read routine
     > just because EOF is not set?  Perhaps we are hitting a race on
     > close that Linux, when it is the server, doesn't see because it
     > responds faster?

You are actually probably hitting a hole in the file. If the client
has written beyond the eof, but not yet transmitted the data to the
server, then you would indeed probably see an EIO.

Your fix is probably correct, but could you just cross-check by seeing
if the appended patch also fixes the problem?

Cheers,
  Trond

--- linux-2.4.21-up/fs/nfs/read.c.orig	2002-12-12 02:23:09.000000000 -0800
+++ linux-2.4.21-up/fs/nfs/read.c	2003-03-11 13:52:26.000000000 -0800
@@ -424,7 +424,7 @@
 				memset(p + count, 0, PAGE_CACHE_SIZE - count);
 				kunmap(page);
 				count = 0;
-				if (data->res.eof)
+				if (data->res.eof || page_index(page) <= inode->i_size >> PAGE_CACHE_SHIFT)
 					SetPageUptodate(page);
 				else
 					SetPageError(page);

  reply	other threads:[~2003-03-11 21:43 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-03-11 19:26 Joe Korty
2003-03-11 21:54 ` Trond Myklebust [this message]
2003-03-11 23:19   ` Joe Korty
2003-03-11 23:29     ` Trond Myklebust

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=15982.23313.285256.769067@charged.uio.no \
    --to=trond.myklebust@fys.uio.no \
    --cc=joe.korty@ccur.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®