linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: "Matthew Wilcox (Oracle)" <willy@infradead.org>
To: linux-fsdevel@vger.kernel.org
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>, linux-mm@kvack.org
Subject: [PATCH 00/24] Begin removing PageError
Date: Fri, 27 May 2022 16:50:12 +0100	[thread overview]
Message-ID: <20220527155036.524743-1-willy@infradead.org> (raw)

The approach I'm taking is to remove the checks for PageError (and
folio_test_error).  Once nobody is checking the error flag, we can safely
remove all places that set/clear it.

After this series, there are some places which still use it.  Lots of
the converted places are trivial -- they should have been checking the
uptodate flag.  The trickiest are the ones which have multiple steps
and signal "hey, something went wrong with one step in the read of this
page/folio" by setting the error flag.

I'm thinking about (ab)using PageChecked == PG_owner_priv_1 for this
purpose.  It'd be nice to be able to use page->private for this, but
that's not always available.  I know some filesystems already ascribe
a meaning to PG_owner_priv_1, but those can be distinguished by whether
the uptodate flag is set.

Thoughts?  Most of these look like good cleanups that we want to have
anyway.

Matthew Wilcox (Oracle) (24):
  block: Remove check of PageError
  afs: Remove check of PageError
  freevxfs: Remove check of PageError
  gfs: Check PageUptodate instead of PageError
  hfs: Remove check for PageError
  hfsplus: Remove check for PageError
  ntfs: Remove check for PageError
  ext2: Remove check for PageError
  nilfs2: Remove check for PageError
  ntfs: Remove check for PageError
  ntfs3: Remove check for PageError
  reiserfs: Remove check for PageError
  ufs: Remove checks for PageError
  remap_range: Remove check of uptodate flag
  jfs: Remove check for PageUptodate
  iomap: Remove test for folio error
  orangefs: Remove test for folio error
  buffer: Remove check for PageError
  nfs: Leave pages in the pagecache if readpage failed
  btrfs: Use a folio in wait_dev_supers()
  buffer: Don't test folio error in block_read_full_folio()
  squashfs: Return the actual error from squashfs_read_folio()
  hostfs: Handle page write errors correctly
  ocfs2: Use filemap_write_and_wait_range() in
    ocfs2_cow_sync_writeback()

 block/partitions/core.c |  4 ----
 fs/afs/mntpt.c          |  6 ------
 fs/btrfs/disk-io.c      | 19 ++++++++-----------
 fs/buffer.c             | 13 ++++++++-----
 fs/ext2/dir.c           |  3 +--
 fs/freevxfs/vxfs_subr.c |  6 ------
 fs/gfs2/lops.c          |  2 +-
 fs/hfs/bnode.c          |  4 ----
 fs/hfsplus/bnode.c      |  4 ----
 fs/hostfs/hostfs_kern.c |  6 +++---
 fs/iomap/buffered-io.c  |  3 ---
 fs/jfs/jfs_metapage.c   |  2 +-
 fs/nfs/read.c           |  4 ----
 fs/nilfs2/dir.c         |  2 +-
 fs/ntfs/aops.h          |  7 +------
 fs/ntfs/file.c          |  5 -----
 fs/ntfs3/ntfs_fs.h      |  7 +------
 fs/ocfs2/refcounttree.c | 42 ++++++-----------------------------------
 fs/orangefs/inode.c     |  4 +---
 fs/reiserfs/xattr.c     |  9 +--------
 fs/remap_range.c        | 11 +----------
 fs/squashfs/file.c      | 15 ++++++++-------
 fs/ufs/dir.c            |  2 +-
 fs/ufs/util.c           | 11 -----------
 24 files changed, 43 insertions(+), 148 deletions(-)

-- 
2.34.1



             reply	other threads:[~2022-05-27 15:51 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-27 15:50 Matthew Wilcox (Oracle) [this message]
2022-05-27 15:50 ` [PATCH 01/24] block: Remove check of PageError Matthew Wilcox (Oracle)
2022-05-28  5:47   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 02/24] afs: " Matthew Wilcox (Oracle)
2022-05-28  5:47   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 03/24] freevxfs: " Matthew Wilcox (Oracle)
2022-05-28  5:48   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 04/24] gfs: Check PageUptodate instead " Matthew Wilcox (Oracle)
2022-05-28  5:48   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 05/24] hfs: Remove check for PageError Matthew Wilcox (Oracle)
2022-05-28  5:48   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 06/24] hfsplus: " Matthew Wilcox (Oracle)
2022-05-28  5:48   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 07/24] ntfs: " Matthew Wilcox (Oracle)
2022-05-28  5:48   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 08/24] ext2: " Matthew Wilcox (Oracle)
2022-05-28  5:49   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 09/24] nilfs2: " Matthew Wilcox (Oracle)
2022-05-28  5:49   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 10/24] ntfs: " Matthew Wilcox (Oracle)
2022-05-28  5:49   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 11/24] ntfs3: " Matthew Wilcox (Oracle)
2022-05-28  5:51   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 12/24] reiserfs: " Matthew Wilcox (Oracle)
2022-05-28  5:52   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 13/24] ufs: Remove checks " Matthew Wilcox (Oracle)
2022-05-28  5:56   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 14/24] remap_range: Remove check of uptodate flag Matthew Wilcox (Oracle)
2022-05-28  5:59   ` Christoph Hellwig
2022-05-30 12:35     ` Matthew Wilcox
2022-05-27 15:50 ` [PATCH 15/24] jfs: Remove check for PageUptodate Matthew Wilcox (Oracle)
2022-05-28  5:59   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 16/24] iomap: Remove test for folio error Matthew Wilcox (Oracle)
2022-05-28  6:00   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 17/24] orangefs: " Matthew Wilcox (Oracle)
2022-05-28  6:00   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 18/24] buffer: Remove check for PageError Matthew Wilcox (Oracle)
2022-05-28  6:01   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 19/24] nfs: Leave pages in the pagecache if readpage failed Matthew Wilcox (Oracle)
2022-05-28  6:02   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 20/24] btrfs: Use a folio in wait_dev_supers() Matthew Wilcox (Oracle)
2022-05-28  6:03   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 21/24] buffer: Don't test folio error in block_read_full_folio() Matthew Wilcox (Oracle)
2022-05-28  6:05   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 22/24] squashfs: Return the actual error from squashfs_read_folio() Matthew Wilcox (Oracle)
2022-05-28  6:06   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 23/24] hostfs: Handle page write errors correctly Matthew Wilcox (Oracle)
2022-05-28  6:06   ` Christoph Hellwig
2022-05-27 15:50 ` [PATCH 24/24] ocfs2: Use filemap_write_and_wait_range() in ocfs2_cow_sync_writeback() Matthew Wilcox (Oracle)
2022-05-28  6:07   ` Christoph Hellwig
2022-05-28  6:12 ` [PATCH 00/24] Begin removing PageError 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=20220527155036.524743-1-willy@infradead.org \
    --to=willy@infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-mm@kvack.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;
as well as URLs for NNTP newsgroup(s).