From: "Matthew Wilcox (Oracle)" <willy@infradead.org>
To: linux-fsdevel@vger.kernel.org
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>,
linux-mm@kvack.org, v9fs-developer@lists.sourceforge.net,
linux-kernel@vger.kernel.org, linux-afs@lists.infradead.org,
ceph-devel@vger.kernel.org, linux-cifs@vger.kernel.org,
ecryptfs@vger.kernel.org, linux-um@lists.infradead.org,
linux-mtd@lists.infradead.org,
Richard Weinberger <richard@nod.at>
Subject: [PATCH 00/13] Allow readpage to return a locked page
Date: Thu, 17 Sep 2020 16:10:37 +0100 [thread overview]
Message-ID: <20200917151050.5363-1-willy@infradead.org> (raw)
Linus recently made the page lock more fair. That means that the old
pattern where we returned from ->readpage with the page unlocked and
then attempted to re-lock it will send us to the back of the queue for
this page's lock.
Ideally all filesystems would return from ->readpage with the
page Uptodate and Locked, but it's a bit painful to convert all the
asynchronous readpage implementations to synchronous. These ones are
already synchronous, so convert them while I work on iomap.
A further benefit is that a synchronous readpage implementation allows
us to return an error to someone who might actually care about it.
There's no need to SetPageError, but I don't want to learn about how
a dozen filesystems handle I/O errors (hint: they're all different),
so I have not attempted to change that.
Please review your filesystem carefully. I've tried to catch all the
places where a filesystem calls its own internal readpage implementation
without going through ->readpage, but I may have missed some.
Matthew Wilcox (Oracle) (13):
mm: Add AOP_UPDATED_PAGE return value
9p: Tell the VFS that readpage was synchronous
afs: Tell the VFS that readpage was synchronous
ceph: Tell the VFS that readpage was synchronous
cifs: Tell the VFS that readpage was synchronous
cramfs: Tell the VFS that readpage was synchronous
ecryptfs: Tell the VFS that readpage was synchronous
fuse: Tell the VFS that readpage was synchronous
hostfs: Tell the VFS that readpage was synchronous
jffs2: Tell the VFS that readpage was synchronous
ubifs: Tell the VFS that readpage was synchronous
udf: Tell the VFS that readpage was synchronous
vboxsf: Tell the VFS that readpage was synchronous
Documentation/filesystems/locking.rst | 7 ++++---
Documentation/filesystems/vfs.rst | 21 ++++++++++++++-------
fs/9p/vfs_addr.c | 6 +++++-
fs/afs/file.c | 3 ++-
fs/ceph/addr.c | 9 +++++----
fs/cifs/file.c | 8 ++++++--
fs/cramfs/inode.c | 5 ++---
fs/ecryptfs/mmap.c | 11 ++++++-----
fs/fuse/file.c | 2 ++
fs/hostfs/hostfs_kern.c | 2 ++
fs/jffs2/file.c | 6 ++++--
fs/ubifs/file.c | 16 ++++++++++------
fs/udf/file.c | 3 +--
fs/vboxsf/file.c | 2 ++
include/linux/fs.h | 5 +++++
mm/filemap.c | 12 ++++++++++--
16 files changed, 80 insertions(+), 38 deletions(-)
--
2.28.0
WARNING: multiple messages have this Message-ID (diff)
From: "Matthew Wilcox (Oracle)" <willy@infradead.org>
To: linux-fsdevel@vger.kernel.org
Cc: linux-cifs@vger.kernel.org, Richard Weinberger <richard@nod.at>,
ecryptfs@vger.kernel.org, linux-um@lists.infradead.org,
linux-kernel@vger.kernel.org,
"Matthew Wilcox \(Oracle\)" <willy@infradead.org>,
linux-mm@kvack.org, linux-mtd@lists.infradead.org,
v9fs-developer@lists.sourceforge.net, ceph-devel@vger.kernel.org,
linux-afs@lists.infradead.org
Subject: [PATCH 00/13] Allow readpage to return a locked page
Date: Thu, 17 Sep 2020 16:10:37 +0100 [thread overview]
Message-ID: <20200917151050.5363-1-willy@infradead.org> (raw)
Linus recently made the page lock more fair. That means that the old
pattern where we returned from ->readpage with the page unlocked and
then attempted to re-lock it will send us to the back of the queue for
this page's lock.
Ideally all filesystems would return from ->readpage with the
page Uptodate and Locked, but it's a bit painful to convert all the
asynchronous readpage implementations to synchronous. These ones are
already synchronous, so convert them while I work on iomap.
A further benefit is that a synchronous readpage implementation allows
us to return an error to someone who might actually care about it.
There's no need to SetPageError, but I don't want to learn about how
a dozen filesystems handle I/O errors (hint: they're all different),
so I have not attempted to change that.
Please review your filesystem carefully. I've tried to catch all the
places where a filesystem calls its own internal readpage implementation
without going through ->readpage, but I may have missed some.
Matthew Wilcox (Oracle) (13):
mm: Add AOP_UPDATED_PAGE return value
9p: Tell the VFS that readpage was synchronous
afs: Tell the VFS that readpage was synchronous
ceph: Tell the VFS that readpage was synchronous
cifs: Tell the VFS that readpage was synchronous
cramfs: Tell the VFS that readpage was synchronous
ecryptfs: Tell the VFS that readpage was synchronous
fuse: Tell the VFS that readpage was synchronous
hostfs: Tell the VFS that readpage was synchronous
jffs2: Tell the VFS that readpage was synchronous
ubifs: Tell the VFS that readpage was synchronous
udf: Tell the VFS that readpage was synchronous
vboxsf: Tell the VFS that readpage was synchronous
Documentation/filesystems/locking.rst | 7 ++++---
Documentation/filesystems/vfs.rst | 21 ++++++++++++++-------
fs/9p/vfs_addr.c | 6 +++++-
fs/afs/file.c | 3 ++-
fs/ceph/addr.c | 9 +++++----
fs/cifs/file.c | 8 ++++++--
fs/cramfs/inode.c | 5 ++---
fs/ecryptfs/mmap.c | 11 ++++++-----
fs/fuse/file.c | 2 ++
fs/hostfs/hostfs_kern.c | 2 ++
fs/jffs2/file.c | 6 ++++--
fs/ubifs/file.c | 16 ++++++++++------
fs/udf/file.c | 3 +--
fs/vboxsf/file.c | 2 ++
include/linux/fs.h | 5 +++++
mm/filemap.c | 12 ++++++++++--
16 files changed, 80 insertions(+), 38 deletions(-)
--
2.28.0
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
WARNING: multiple messages have this Message-ID (diff)
From: "Matthew Wilcox (Oracle)" <willy@infradead.org>
To: linux-fsdevel@vger.kernel.org
Cc: linux-cifs@vger.kernel.org, Richard Weinberger <richard@nod.at>,
ecryptfs@vger.kernel.org, linux-um@lists.infradead.org,
linux-kernel@vger.kernel.org,
"Matthew Wilcox (Oracle)" <willy@infradead.org>,
linux-mm@kvack.org, linux-mtd@lists.infradead.org,
v9fs-developer@lists.sourceforge.net, ceph-devel@vger.kernel.org,
linux-afs@lists.infradead.org
Subject: [PATCH 00/13] Allow readpage to return a locked page
Date: Thu, 17 Sep 2020 16:10:37 +0100 [thread overview]
Message-ID: <20200917151050.5363-1-willy@infradead.org> (raw)
Linus recently made the page lock more fair. That means that the old
pattern where we returned from ->readpage with the page unlocked and
then attempted to re-lock it will send us to the back of the queue for
this page's lock.
Ideally all filesystems would return from ->readpage with the
page Uptodate and Locked, but it's a bit painful to convert all the
asynchronous readpage implementations to synchronous. These ones are
already synchronous, so convert them while I work on iomap.
A further benefit is that a synchronous readpage implementation allows
us to return an error to someone who might actually care about it.
There's no need to SetPageError, but I don't want to learn about how
a dozen filesystems handle I/O errors (hint: they're all different),
so I have not attempted to change that.
Please review your filesystem carefully. I've tried to catch all the
places where a filesystem calls its own internal readpage implementation
without going through ->readpage, but I may have missed some.
Matthew Wilcox (Oracle) (13):
mm: Add AOP_UPDATED_PAGE return value
9p: Tell the VFS that readpage was synchronous
afs: Tell the VFS that readpage was synchronous
ceph: Tell the VFS that readpage was synchronous
cifs: Tell the VFS that readpage was synchronous
cramfs: Tell the VFS that readpage was synchronous
ecryptfs: Tell the VFS that readpage was synchronous
fuse: Tell the VFS that readpage was synchronous
hostfs: Tell the VFS that readpage was synchronous
jffs2: Tell the VFS that readpage was synchronous
ubifs: Tell the VFS that readpage was synchronous
udf: Tell the VFS that readpage was synchronous
vboxsf: Tell the VFS that readpage was synchronous
Documentation/filesystems/locking.rst | 7 ++++---
Documentation/filesystems/vfs.rst | 21 ++++++++++++++-------
fs/9p/vfs_addr.c | 6 +++++-
fs/afs/file.c | 3 ++-
fs/ceph/addr.c | 9 +++++----
fs/cifs/file.c | 8 ++++++--
fs/cramfs/inode.c | 5 ++---
fs/ecryptfs/mmap.c | 11 ++++++-----
fs/fuse/file.c | 2 ++
fs/hostfs/hostfs_kern.c | 2 ++
fs/jffs2/file.c | 6 ++++--
fs/ubifs/file.c | 16 ++++++++++------
fs/udf/file.c | 3 +--
fs/vboxsf/file.c | 2 ++
include/linux/fs.h | 5 +++++
mm/filemap.c | 12 ++++++++++--
16 files changed, 80 insertions(+), 38 deletions(-)
--
2.28.0
_______________________________________________
linux-um mailing list
linux-um@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-um
next reply other threads:[~2020-09-17 15:14 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-17 15:10 Matthew Wilcox (Oracle) [this message]
2020-09-17 15:10 ` [PATCH 00/13] Allow readpage to return a locked page Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` [PATCH 01/13] mm: Add AOP_UPDATED_PAGE return value Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 22:03 ` Matthew Wilcox
2020-09-17 22:03 ` Matthew Wilcox
2020-09-17 22:03 ` Matthew Wilcox
2020-09-17 15:10 ` [PATCH 02/13] 9p: Tell the VFS that readpage was synchronous Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-18 5:59 ` [V9fs-developer] " Dominique Martinet
2020-09-18 5:59 ` Dominique Martinet
2020-09-18 5:59 ` Dominique Martinet
2020-09-18 11:19 ` Matthew Wilcox
2020-09-18 11:19 ` Matthew Wilcox
2020-09-18 11:19 ` Matthew Wilcox
2020-09-18 12:30 ` Dominique Martinet
2020-09-18 12:30 ` Dominique Martinet
2020-09-18 12:30 ` Dominique Martinet
2020-09-17 15:10 ` [PATCH 03/13] afs: " Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` [PATCH 04/13] ceph: " Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 16:49 ` Jeff Layton
2020-09-17 16:49 ` Jeff Layton
2020-09-17 16:49 ` Jeff Layton
2020-09-17 15:10 ` [PATCH 05/13] cifs: " Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` [PATCH 06/13] cramfs: " Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` [PATCH 07/13] ecryptfs: " Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` [PATCH 08/13] fuse: " Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` [PATCH 09/13] hostfs: " Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` [PATCH 10/13] jffs2: " Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` [PATCH 11/13] ubifs: " Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 20:46 ` Richard Weinberger
2020-09-17 20:46 ` Richard Weinberger
2020-09-17 20:46 ` Richard Weinberger
2020-09-17 20:46 ` Richard Weinberger
2020-09-17 15:10 ` [PATCH 12/13] udf: " Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-24 9:00 ` Jan Kara
2020-09-24 9:00 ` Jan Kara
2020-09-24 9:00 ` Jan Kara
2020-09-17 15:10 ` [PATCH 13/13] vboxsf: " Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 15:10 ` Matthew Wilcox (Oracle)
2020-09-17 22:56 ` [PATCH 14/13] iomap: Inline iomap_iop_set_range_uptodate into its one caller Matthew Wilcox (Oracle)
2020-09-17 22:56 ` [PATCH 15/13] iomap: Inline iomap_read_finish " Matthew Wilcox (Oracle)
2020-09-19 6:31 ` Christoph Hellwig
2020-09-17 22:56 ` [PATCH 16/13] iomap: Make readpage synchronous Matthew Wilcox (Oracle)
2020-09-19 6:39 ` Christoph Hellwig
2020-09-19 6:43 ` Christoph Hellwig
2020-09-19 17:03 ` Matthew Wilcox
2020-09-19 17:10 ` Matthew Wilcox
2020-09-19 6:31 ` [PATCH 14/13] iomap: Inline iomap_iop_set_range_uptodate into its one caller Christoph Hellwig
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=20200917151050.5363-1-willy@infradead.org \
--to=willy@infradead.org \
--cc=ceph-devel@vger.kernel.org \
--cc=ecryptfs@vger.kernel.org \
--cc=linux-afs@lists.infradead.org \
--cc=linux-cifs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-um@lists.infradead.org \
--cc=richard@nod.at \
--cc=v9fs-developer@lists.sourceforge.net \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.