From: "Stephen C. Tweedie" <sct@redhat.com>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: Chris Mason <mason@suse.com>,
Marcelo Tosatti <marcelo@conectiva.com.br>,
Alexander Viro <viro@math.psu.edu>,
Kernel Mailing List <linux-kernel@vger.kernel.org>,
Stephen Tweedie <sct@redhat.com>
Subject: Re: [PATCH] filemap_fdatasync & related changes
Date: Thu, 4 Jan 2001 18:46:04 +0000 [thread overview]
Message-ID: <20010104184604.A2034@redhat.com> (raw)
In-Reply-To: <428710000.978539866@tiny> <Pine.LNX.4.10.10101031027090.1896-100000@penguin.transmeta.com>
In-Reply-To: <Pine.LNX.4.10.10101031027090.1896-100000@penguin.transmeta.com>; from torvalds@transmeta.com on Wed, Jan 03, 2001 at 10:28:05AM -0800
hi,
On Wed, Jan 03, 2001 at 10:28:05AM -0800, Linus Torvalds wrote:
>
> On Wed, 3 Jan 2001, Chris Mason wrote:
> >
> > Just noticed the filemap_fdatasync code doesn't check the return value from
> > writepage. Linus, would you take a patch that redirtied the page, puts it
> > back onto the dirty list (at the tail), and unlocks the page when writepage
> > returns 1?
>
> I don't see how that would help. It's just asking for endless loops.
Ultimately our whole IO-error handling for writes is fundamentally
broken right now, at least at the buffer_head level. We just don't
have any mechanism in the buffer_head for distinguishing between write
errors and read errors. If you get a write error, the next reader who
happens upon that buffer will see an invalid buffer and will try to
reread from disk, discarding the newer data from cache that we had
problems writing.
It's less of a problem with the page cache in 2.4 because such a write
error doesn't set the page to being not-uptodate, but the problem is
still there. If we're going to start trying to be rigorous about
propagating driver write failure notification back up to user space
(eg. for O_SYNC), then ideally we need to do it in conjunction with a
rethink of the end_request() code.
The only reason I've come up against this particular problem recently
is that it impacts journaling filesystems. It can lead to buffers in
memory suddenly appearing non-uptodate after a write, causing
subsequent reads to submit disk IOs on a buffer which the journaling
code expects to be unlocked.
--Stephen
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
next prev parent reply other threads:[~2001-01-04 18:49 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-12-28 20:25 test13-pre5 Linus Torvalds
2000-12-28 18:39 ` test13-pre5 Marcelo Tosatti
2000-12-28 20:59 ` test13-pre5 Linus Torvalds
2000-12-28 19:22 ` test13-pre5 Marcelo Tosatti
2000-12-28 21:21 ` [wildly off-topic] test13-pre5 Rik van Riel
2000-12-28 19:31 ` Marcelo Tosatti
2000-12-28 21:39 ` test13-pre5 Daniel Phillips
2000-12-28 22:14 ` test13-pre5 Marcelo Tosatti
2000-12-29 1:10 ` test13-pre5 Linus Torvalds
2000-12-29 12:06 ` test13-pre5 Daniel Phillips
2000-12-28 22:17 ` test13-pre5 Andi Kleen
2000-12-28 22:33 ` test13-pre5 David S. Miller
2000-12-28 22:58 ` test13-pre5 Andi Kleen
2000-12-28 22:54 ` test13-pre5 David S. Miller
2000-12-28 23:17 ` test13-pre5 Andi Kleen
2000-12-28 23:14 ` test13-pre5 David S. Miller
2000-12-28 23:39 ` test13-pre5 Andi Kleen
2000-12-28 23:25 ` test13-pre5 Rik van Riel
2000-12-28 23:36 ` test13-pre5 Linus Torvalds
2000-12-28 23:03 ` test13-pre5 Rik van Riel
2000-12-29 15:46 ` test13-pre5 Mark Hemment
2000-12-29 16:30 ` test13-pre5 Tim Wright
2000-12-29 17:54 ` test13-pre5 Mark Hemment
2000-12-29 21:23 ` test13-pre5 David S. Miller
2000-12-29 21:51 ` test13-pre5 Linus Torvalds
2000-12-28 23:15 ` test13-pre5 Linus Torvalds
2000-12-28 23:25 ` test13-pre5 Andi Kleen
2000-12-28 23:37 ` test13-pre5 Linus Torvalds
2000-12-28 23:43 ` test13-pre5 Andi Kleen
2000-12-29 0:49 ` test13-pre5 Stefan Traby
2000-12-29 1:23 ` test13-pre5 Linus Torvalds
2000-12-29 1:06 ` test13-pre5 Albert Cranford
2000-12-29 14:53 ` test13-pre5 Stefan Traby
2000-12-30 13:24 ` test13-pre5 Geert Uytterhoeven
2000-12-31 17:21 ` test13-pre5 Andi Kleen
2000-12-31 17:27 ` test13-pre5 Linus Torvalds
2000-12-31 17:36 ` test13-pre5 Andi Kleen
2000-12-31 18:19 ` test13-pre5 Andrea Arcangeli
2000-12-31 18:06 ` test13-pre5 Andi Kleen
2000-12-31 18:07 ` test13-pre5 Matti Aarnio
2000-12-31 19:15 ` test13-pre5 Linus Torvalds
2000-12-31 19:49 ` test13-pre5 Andi Kleen
2000-12-31 18:10 ` test13-pre5 Andrea Arcangeli
2001-01-01 19:58 ` test13-pre5 H. Peter Anvin
2000-12-29 16:49 ` [PATCH] filemap_fdatasync & related changes Marcelo Tosatti
2000-12-29 21:13 ` Linus Torvalds
2001-01-03 16:37 ` Chris Mason
2001-01-03 17:07 ` Daniel Phillips
2001-01-03 18:28 ` Linus Torvalds
2001-01-03 19:09 ` Chris Mason
2001-01-03 21:39 ` Chris Wedgwood
2001-01-04 18:46 ` Stephen C. Tweedie [this message]
2001-01-04 9:48 ` Christoph Rohland
2001-01-04 14:41 ` Marcelo Tosatti
2001-01-04 16:58 ` Rik van Riel
2001-01-04 17:38 ` Chris Mason
2001-01-04 18:00 ` Linus Torvalds
2001-01-04 22:52 ` Daniel Phillips
2001-01-04 15:30 ` Chris Mason
2001-01-04 17:01 ` Christoph Rohland
2000-12-28 21:27 ` test13-pre5 (via82cxxx_audio.c) Jonathan Hudson
2000-12-29 18:17 ` test13-pre5 Tom Rini
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=20010104184604.A2034@redhat.com \
--to=sct@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo@conectiva.com.br \
--cc=mason@suse.com \
--cc=torvalds@transmeta.com \
--cc=viro@math.psu.edu \
/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