From: Linus Torvalds <torvalds@osdl.org>
To: Andrew Morton <akpm@osdl.org>
Cc: Michael Halcrow <lkml@halcrow.us>,
penberg@cs.helsinki.fi, shaggy@austin.ibm.com,
dhowells@redhat.com, phillip@hellewell.homeip.net,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
viro@ftp.linux.org.uk, mhalcrow@us.ibm.com, mcthomps@us.ibm.com,
toml@us.ibm.com, yoder1@us.ibm.com, jmorris@namei.org,
sct@redhat.com, ezk@cs.sunysb.edu
Subject: Re: [PATCH 10/13: eCryptfs] Mmap operations
Date: Sat, 6 May 2006 09:57:32 -0700 (PDT) [thread overview]
Message-ID: <Pine.LNX.4.64.0605060948150.16343@g5.osdl.org> (raw)
In-Reply-To: <20060506094228.25fcda1b.akpm@osdl.org>
On Sat, 6 May 2006, Andrew Morton wrote:
>
> Note that the pagefault handlers do still do a second readpage(). The
> comment implies that this is an open-coded attempt to recover from an I/O
> error. I do recall that a year or so ago we discussed taking out that
> second readpage attempt, but Linus had good-sounding reasons for keeping
> it. But I forget what they were. Perhaps he can remind me?
All the non-readahead read paths - not just page faults, but certainly
things like the generic file read routines - will do (at least they
_should_ do) a "readpage()" if they find a page that is not up-to-date
after they've gotten the lock.
That's basically just what the PG_uptodate flag means. If that flag isn't
set, you need to ->readpage() the contents, whether you allocated the page
yourself or not.
But nobody should ever do two readpages on their OWN. If readpage() fails,
you should return -EIO (or whatever), and the page will be left
not-up-to-date. But you do need to be able to accept the fact that a
_previous_ read-page failed.
And yes, it happens in practice. Networked filesystems, for example. The
previous person to try to read might have gotten a permission error. The
same is true of any kind of security scheme where the "read()" checks may
not match the "open()" security.
It's also true of read errors. You don't want to have the kernel re-try
them forever, but on the other hand, you do NOT want to keep the page as
an "error" forever without trying again. The read error could have been
because the user had removed the media (or not closed the door properly),
or anything else that the user could actually fix manually, and re-do the
operation, and it would work.
Not all read errors are final. So we shouldn't consider them final.
Linus
next prev parent reply other threads:[~2006-05-06 16:58 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-04 3:17 [PATCH 0/12: eCryptfs] eCryptfs version 0.1.6 Phillip Hellewell
2006-05-04 3:27 ` [PATCH 1/13: eCryptfs] fs/Makefile and fs/Kconfig Phillip Hellewell
2006-05-04 3:35 ` [PATCH 2/13: eCryptfs] Documentation Phillip Hellewell
2006-05-04 7:32 ` Pavel Machek
2006-05-04 12:11 ` Michael Halcrow
2006-05-04 3:36 ` [PATCH 3/13: eCryptfs] Makefile Phillip Hellewell
2006-05-04 3:37 ` [PATCH 4/13: eCryptfs] Main module functions Phillip Hellewell
2006-05-04 3:37 ` [PATCH 5/13: eCryptfs] Header declarations Phillip Hellewell
2006-05-04 14:51 ` Pekka Enberg
2006-05-04 14:58 ` Artem B. Bityutskiy
2006-05-04 15:22 ` Pekka Enberg
2006-05-04 15:29 ` Artem B. Bityutskiy
2006-05-04 15:08 ` Michael Thompson
2006-05-04 3:38 ` [PATCH 6/13: eCryptfs] Superblock operations Phillip Hellewell
2006-05-04 9:55 ` Pavel Machek
2006-05-04 14:02 ` Michael Thompson
2006-05-04 14:26 ` Pekka Enberg
2006-05-04 14:37 ` Pekka Enberg
2006-05-04 15:00 ` Michael Thompson
2006-05-04 15:12 ` Pekka Enberg
2006-05-04 21:40 ` David Howells
2006-05-05 13:12 ` Dave Kleikamp
2006-05-05 14:03 ` David Howells
2006-05-05 14:34 ` Dave Kleikamp
2006-05-05 14:52 ` David Howells
2006-05-05 16:15 ` Timothy R. Chavez
2006-05-04 3:39 ` [PATCH 7/13: eCryptfs] Dentry operations Phillip Hellewell
2006-05-05 16:46 ` Timothy R. Chavez
2006-05-04 3:39 ` [PATCH 8/13: eCryptfs] File operations Phillip Hellewell
2006-05-04 4:06 ` Eric Dumazet
2006-05-05 18:55 ` Timothy R. Chavez
2006-05-04 3:40 ` [PATCH 9/13: eCryptfs] Inode operations Phillip Hellewell
2006-05-04 3:41 ` [PATCH 10/13: eCryptfs] Mmap operations Phillip Hellewell
2006-05-04 15:13 ` Pekka Enberg
2006-05-04 21:43 ` David Howells
2006-05-05 15:22 ` Dave Kleikamp
2006-05-05 15:38 ` Pekka Enberg
2006-05-06 2:21 ` Andrew Morton
2006-05-06 16:00 ` Michael Halcrow
2006-05-06 16:42 ` Andrew Morton
2006-05-06 16:57 ` Linus Torvalds [this message]
2006-05-04 3:42 ` [PATCH 11/13: eCryptfs] Keystore Phillip Hellewell
2006-05-04 3:42 ` [PATCH 12/13: eCryptfs] Crypto functions Phillip Hellewell
2006-05-04 3:43 ` [PATCH 13/13: eCryptfs] Debug functions Phillip Hellewell
2006-05-04 20:30 ` Randy.Dunlap
2006-05-04 7:28 ` [PATCH 0/12: eCryptfs] eCryptfs version 0.1.6 Pavel Machek
2006-05-04 12:08 ` Michael Halcrow
2006-05-05 9:05 ` Alon Bar-Lev
2006-05-05 16:08 ` Michael Halcrow
-- strict thread matches above, loose matches on Subject: below --
2006-05-13 3:37 [PATCH 0/13: eCryptfs] eCryptfs Patch Set Phillip Hellewell
2006-05-13 3:47 ` [PATCH 10/13: eCryptfs] Mmap operations Phillip Hellewell
2006-06-28 14:16 ` Pekka Enberg
2006-06-28 15:02 ` Michael Halcrow
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=Pine.LNX.4.64.0605060948150.16343@g5.osdl.org \
--to=torvalds@osdl.org \
--cc=akpm@osdl.org \
--cc=dhowells@redhat.com \
--cc=ezk@cs.sunysb.edu \
--cc=jmorris@namei.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkml@halcrow.us \
--cc=mcthomps@us.ibm.com \
--cc=mhalcrow@us.ibm.com \
--cc=penberg@cs.helsinki.fi \
--cc=phillip@hellewell.homeip.net \
--cc=sct@redhat.com \
--cc=shaggy@austin.ibm.com \
--cc=toml@us.ibm.com \
--cc=viro@ftp.linux.org.uk \
--cc=yoder1@us.ibm.com \
/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;
as well as URLs for NNTP newsgroup(s).