All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johannes Thumshirn <johannes.thumshirn@wdc.com>
To: Jens Axboe <axboe@kernel.dk>
Cc: Christoph Hellwig <hch@lst.de>, Hannes Reinecke <hare@suse.de>,
	Chaitanya Kulkarni <kch@nvidia.com>,
	Damien Le Moal <damien.lemoal@wdc.com>,
	Ming Lei <ming.lei@redhat.com>,
	linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	linux-mm@kvack.org, dm-devel@redhat.com,
	Song Liu <song@kernel.org>,
	linux-raid@vger.kernel.org, Mike Snitzer <snitzer@kernel.org>,
	Matthew Wilcox <willy@infradead.org>,
	Dave Kleikamp <shaggy@kernel.org>,
	jfs-discussion@lists.sourceforge.net, cluster-devel@redhat.com,
	Bob Peterson <rpeterso@redhat.com>,
	Andreas Gruenbacher <agruenba@redhat.com>,
	Mikulas Patocka <mpatocka@redhat.com>,
	gouha7@uniontech.com,
	Johannes Thumshirn <johannes.thumshirn@wdc.com>
Subject: [PATCH v7 00/20] bio: check return values of bio_add_page
Date: Wed, 31 May 2023 04:50:23 -0700	[thread overview]
Message-ID: <cover.1685532726.git.johannes.thumshirn@wdc.com> (raw)

We have two functions for adding a page to a bio, __bio_add_page() which is
used to add a single page to a freshly created bio and bio_add_page() which is
used to add a page to an existing bio.

While __bio_add_page() is expected to succeed, bio_add_page() can fail.

This series converts the callers of bio_add_page() which can easily use
__bio_add_page() to using it and checks the return of bio_add_page() for
callers that don't work on a freshly created bio.

Lastly it marks bio_add_page() as __must_check so we don't have to go again
and audit all callers.

Changes to v6:
- Incorporated comments from Mike and Christoph
- Collected Reviewed-bys

Changes to v5:
- Rebased onto latest Linus' master
- Removed now superfluous BUG_ON() in fs/buffer.c (Gou)
- Removed dead cleanup code in dm-crypt.c (Mikulas)

Changes to v4:
- Rebased onto latest Linus' master
- Dropped already merged patches
- Added Sergey's Reviewed-by

Changes to v3:
- Added __bio_add_folio and use it in iomap (Willy)
- Mark bio_add_folio must check (Willy)
- s/GFS/GFS2/ (Andreas)

Changes to v2:
- Removed 'wont fail' comments pointed out by Song

Changes to v1:
- Removed pointless comment pointed out by Willy
- Changed commit messages pointed out by Damien
- Colledted Damien's Reviews and Acks

Johannes Thumshirn (20):
  swap: use __bio_add_page to add page to bio
  drbd: use __bio_add_page to add page to bio
  dm: dm-zoned: use __bio_add_page for adding single metadata page
  fs: buffer: use __bio_add_page to add single page to bio
  md: use __bio_add_page to add single page
  md: raid5-log: use __bio_add_page to add single page
  md: raid5: use __bio_add_page to add single page to new bio
  jfs: logmgr: use __bio_add_page to add single page to bio
  gfs2: use __bio_add_page for adding single page to bio
  zonefs: use __bio_add_page for adding single page to bio
  zram: use __bio_add_page for adding single page to bio
  floppy: use __bio_add_page for adding single page to bio
  md: check for failure when adding pages in alloc_behind_master_bio
  md: raid1: use __bio_add_page for adding single page to bio
  md: raid1: check if adding pages to resync bio fails
  dm-crypt: use __bio_add_page to add single page to clone bio
  block: mark bio_add_page as __must_check
  block: add bio_add_folio_nofail
  fs: iomap: use bio_add_folio_nofail where possible
  block: mark bio_add_folio as __must_check

 block/bio.c                      |  8 ++++++++
 drivers/block/drbd/drbd_bitmap.c |  4 +---
 drivers/block/floppy.c           |  2 +-
 drivers/block/zram/zram_drv.c    |  2 +-
 drivers/md/dm-crypt.c            |  3 +--
 drivers/md/dm-zoned-metadata.c   |  6 +++---
 drivers/md/md.c                  |  4 ++--
 drivers/md/raid1-10.c            | 11 ++++++-----
 drivers/md/raid1.c               |  7 +++++--
 drivers/md/raid10.c              | 20 ++++++++++----------
 drivers/md/raid5-cache.c         |  2 +-
 drivers/md/raid5-ppl.c           |  4 ++--
 fs/buffer.c                      |  3 +--
 fs/gfs2/ops_fstype.c             |  2 +-
 fs/iomap/buffered-io.c           |  6 +++---
 fs/jfs/jfs_logmgr.c              |  4 ++--
 fs/zonefs/super.c                |  2 +-
 include/linux/bio.h              |  8 ++++++--
 mm/page_io.c                     |  8 ++++----
 19 files changed, 59 insertions(+), 47 deletions(-)


base-commit: 48b1320a674e1ff5de2fad8606bee38f724594dc
-- 
2.40.1


WARNING: multiple messages have this Message-ID (diff)
From: Johannes Thumshirn <johannes.thumshirn@wdc.com>
To: Jens Axboe <axboe@kernel.dk>
Cc: linux-raid@vger.kernel.org,
	Damien Le Moal <damien.lemoal@wdc.com>,
	cluster-devel@redhat.com, Chaitanya Kulkarni <kch@nvidia.com>,
	Andreas Gruenbacher <agruenba@redhat.com>,
	Song Liu <song@kernel.org>, Dave Kleikamp <shaggy@kernel.org>,
	Johannes Thumshirn <johannes.thumshirn@wdc.com>,
	Mike Snitzer <snitzer@kernel.org>,
	jfs-discussion@lists.sourceforge.net,
	Matthew Wilcox <willy@infradead.org>,
	Ming Lei <ming.lei@redhat.com>,
	linux-block@vger.kernel.org, linux-mm@kvack.org,
	dm-devel@redhat.com, Mikulas Patocka <mpatocka@redhat.com>,
	linux-fsdevel@vger.kernel.org, gouha7@uniontech.com,
	Christoph Hellwig <hch@lst.de>,
	Bob Peterson <rpeterso@redhat.com>
Subject: [dm-devel] [PATCH v7 00/20] bio: check return values of bio_add_page
Date: Wed, 31 May 2023 04:50:23 -0700	[thread overview]
Message-ID: <cover.1685532726.git.johannes.thumshirn@wdc.com> (raw)

We have two functions for adding a page to a bio, __bio_add_page() which is
used to add a single page to a freshly created bio and bio_add_page() which is
used to add a page to an existing bio.

While __bio_add_page() is expected to succeed, bio_add_page() can fail.

This series converts the callers of bio_add_page() which can easily use
__bio_add_page() to using it and checks the return of bio_add_page() for
callers that don't work on a freshly created bio.

Lastly it marks bio_add_page() as __must_check so we don't have to go again
and audit all callers.

Changes to v6:
- Incorporated comments from Mike and Christoph
- Collected Reviewed-bys

Changes to v5:
- Rebased onto latest Linus' master
- Removed now superfluous BUG_ON() in fs/buffer.c (Gou)
- Removed dead cleanup code in dm-crypt.c (Mikulas)

Changes to v4:
- Rebased onto latest Linus' master
- Dropped already merged patches
- Added Sergey's Reviewed-by

Changes to v3:
- Added __bio_add_folio and use it in iomap (Willy)
- Mark bio_add_folio must check (Willy)
- s/GFS/GFS2/ (Andreas)

Changes to v2:
- Removed 'wont fail' comments pointed out by Song

Changes to v1:
- Removed pointless comment pointed out by Willy
- Changed commit messages pointed out by Damien
- Colledted Damien's Reviews and Acks

Johannes Thumshirn (20):
  swap: use __bio_add_page to add page to bio
  drbd: use __bio_add_page to add page to bio
  dm: dm-zoned: use __bio_add_page for adding single metadata page
  fs: buffer: use __bio_add_page to add single page to bio
  md: use __bio_add_page to add single page
  md: raid5-log: use __bio_add_page to add single page
  md: raid5: use __bio_add_page to add single page to new bio
  jfs: logmgr: use __bio_add_page to add single page to bio
  gfs2: use __bio_add_page for adding single page to bio
  zonefs: use __bio_add_page for adding single page to bio
  zram: use __bio_add_page for adding single page to bio
  floppy: use __bio_add_page for adding single page to bio
  md: check for failure when adding pages in alloc_behind_master_bio
  md: raid1: use __bio_add_page for adding single page to bio
  md: raid1: check if adding pages to resync bio fails
  dm-crypt: use __bio_add_page to add single page to clone bio
  block: mark bio_add_page as __must_check
  block: add bio_add_folio_nofail
  fs: iomap: use bio_add_folio_nofail where possible
  block: mark bio_add_folio as __must_check

 block/bio.c                      |  8 ++++++++
 drivers/block/drbd/drbd_bitmap.c |  4 +---
 drivers/block/floppy.c           |  2 +-
 drivers/block/zram/zram_drv.c    |  2 +-
 drivers/md/dm-crypt.c            |  3 +--
 drivers/md/dm-zoned-metadata.c   |  6 +++---
 drivers/md/md.c                  |  4 ++--
 drivers/md/raid1-10.c            | 11 ++++++-----
 drivers/md/raid1.c               |  7 +++++--
 drivers/md/raid10.c              | 20 ++++++++++----------
 drivers/md/raid5-cache.c         |  2 +-
 drivers/md/raid5-ppl.c           |  4 ++--
 fs/buffer.c                      |  3 +--
 fs/gfs2/ops_fstype.c             |  2 +-
 fs/iomap/buffered-io.c           |  6 +++---
 fs/jfs/jfs_logmgr.c              |  4 ++--
 fs/zonefs/super.c                |  2 +-
 include/linux/bio.h              |  8 ++++++--
 mm/page_io.c                     |  8 ++++----
 19 files changed, 59 insertions(+), 47 deletions(-)


base-commit: 48b1320a674e1ff5de2fad8606bee38f724594dc
-- 
2.40.1

--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel


WARNING: multiple messages have this Message-ID (diff)
From: Johannes Thumshirn <johannes.thumshirn@wdc.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [PATCH v7 00/20] bio: check return values of bio_add_page
Date: Wed, 31 May 2023 04:50:23 -0700	[thread overview]
Message-ID: <cover.1685532726.git.johannes.thumshirn@wdc.com> (raw)

We have two functions for adding a page to a bio, __bio_add_page() which is
used to add a single page to a freshly created bio and bio_add_page() which is
used to add a page to an existing bio.

While __bio_add_page() is expected to succeed, bio_add_page() can fail.

This series converts the callers of bio_add_page() which can easily use
__bio_add_page() to using it and checks the return of bio_add_page() for
callers that don't work on a freshly created bio.

Lastly it marks bio_add_page() as __must_check so we don't have to go again
and audit all callers.

Changes to v6:
- Incorporated comments from Mike and Christoph
- Collected Reviewed-bys

Changes to v5:
- Rebased onto latest Linus' master
- Removed now superfluous BUG_ON() in fs/buffer.c (Gou)
- Removed dead cleanup code in dm-crypt.c (Mikulas)

Changes to v4:
- Rebased onto latest Linus' master
- Dropped already merged patches
- Added Sergey's Reviewed-by

Changes to v3:
- Added __bio_add_folio and use it in iomap (Willy)
- Mark bio_add_folio must check (Willy)
- s/GFS/GFS2/ (Andreas)

Changes to v2:
- Removed 'wont fail' comments pointed out by Song

Changes to v1:
- Removed pointless comment pointed out by Willy
- Changed commit messages pointed out by Damien
- Colledted Damien's Reviews and Acks

Johannes Thumshirn (20):
  swap: use __bio_add_page to add page to bio
  drbd: use __bio_add_page to add page to bio
  dm: dm-zoned: use __bio_add_page for adding single metadata page
  fs: buffer: use __bio_add_page to add single page to bio
  md: use __bio_add_page to add single page
  md: raid5-log: use __bio_add_page to add single page
  md: raid5: use __bio_add_page to add single page to new bio
  jfs: logmgr: use __bio_add_page to add single page to bio
  gfs2: use __bio_add_page for adding single page to bio
  zonefs: use __bio_add_page for adding single page to bio
  zram: use __bio_add_page for adding single page to bio
  floppy: use __bio_add_page for adding single page to bio
  md: check for failure when adding pages in alloc_behind_master_bio
  md: raid1: use __bio_add_page for adding single page to bio
  md: raid1: check if adding pages to resync bio fails
  dm-crypt: use __bio_add_page to add single page to clone bio
  block: mark bio_add_page as __must_check
  block: add bio_add_folio_nofail
  fs: iomap: use bio_add_folio_nofail where possible
  block: mark bio_add_folio as __must_check

 block/bio.c                      |  8 ++++++++
 drivers/block/drbd/drbd_bitmap.c |  4 +---
 drivers/block/floppy.c           |  2 +-
 drivers/block/zram/zram_drv.c    |  2 +-
 drivers/md/dm-crypt.c            |  3 +--
 drivers/md/dm-zoned-metadata.c   |  6 +++---
 drivers/md/md.c                  |  4 ++--
 drivers/md/raid1-10.c            | 11 ++++++-----
 drivers/md/raid1.c               |  7 +++++--
 drivers/md/raid10.c              | 20 ++++++++++----------
 drivers/md/raid5-cache.c         |  2 +-
 drivers/md/raid5-ppl.c           |  4 ++--
 fs/buffer.c                      |  3 +--
 fs/gfs2/ops_fstype.c             |  2 +-
 fs/iomap/buffered-io.c           |  6 +++---
 fs/jfs/jfs_logmgr.c              |  4 ++--
 fs/zonefs/super.c                |  2 +-
 include/linux/bio.h              |  8 ++++++--
 mm/page_io.c                     |  8 ++++----
 19 files changed, 59 insertions(+), 47 deletions(-)


base-commit: 48b1320a674e1ff5de2fad8606bee38f724594dc
-- 
2.40.1


             reply	other threads:[~2023-05-31 11:51 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-31 11:50 Johannes Thumshirn [this message]
2023-05-31 11:50 ` [Cluster-devel] [PATCH v7 00/20] bio: check return values of bio_add_page Johannes Thumshirn
2023-05-31 11:50 ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 01/20] swap: use __bio_add_page to add page to bio Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 02/20] drbd: " Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 03/20] dm: dm-zoned: use __bio_add_page for adding single metadata page Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 04/20] fs: buffer: use __bio_add_page to add single page to bio Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 05/20] md: use __bio_add_page to add single page Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 06/20] md: raid5-log: " Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 07/20] md: raid5: use __bio_add_page to add single page to new bio Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 08/20] jfs: logmgr: use __bio_add_page to add single page to bio Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 09/20] gfs2: use __bio_add_page for adding " Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 10/20] zonefs: " Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 11/20] zram: " Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 12/20] floppy: " Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 13/20] md: check for failure when adding pages in alloc_behind_master_bio Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 14/20] md: raid1: use __bio_add_page for adding single page to bio Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 15/20] md: raid1: check if adding pages to resync bio fails Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 16/20] dm-crypt: use __bio_add_page to add single page to clone bio Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 11:50 ` [PATCH v7 17/20] block: mark bio_add_page as __must_check Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 12:32   ` Christoph Hellwig
2023-05-31 12:32     ` [Cluster-devel] " Christoph Hellwig
2023-05-31 12:32     ` [dm-devel] " Christoph Hellwig
2023-05-31 11:50 ` [PATCH v7 18/20] block: add bio_add_folio_nofail Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 12:32   ` Christoph Hellwig
2023-05-31 12:32     ` [Cluster-devel] " Christoph Hellwig
2023-05-31 12:32     ` [dm-devel] " Christoph Hellwig
2023-05-31 11:50 ` [PATCH v7 19/20] fs: iomap: use bio_add_folio_nofail where possible Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 22:36   ` Dave Chinner
2023-05-31 22:36     ` [Cluster-devel] " Dave Chinner
2023-05-31 22:36     ` [dm-devel] " Dave Chinner
2023-06-01  4:20     ` Christoph Hellwig
2023-06-01  4:20       ` [Cluster-devel] " Christoph Hellwig
2023-06-01  4:20       ` [dm-devel] " Christoph Hellwig
2023-06-01  4:26       ` Dave Chinner
2023-06-01  4:26         ` [Cluster-devel] " Dave Chinner
2023-06-01  4:26         ` [dm-devel] " Dave Chinner
2023-05-31 11:50 ` [PATCH v7 20/20] block: mark bio_add_folio as __must_check Johannes Thumshirn
2023-05-31 11:50   ` [Cluster-devel] " Johannes Thumshirn
2023-05-31 11:50   ` [dm-devel] " Johannes Thumshirn
2023-05-31 12:34   ` Christoph Hellwig
2023-05-31 12:34     ` [Cluster-devel] " Christoph Hellwig
2023-05-31 12:34     ` [dm-devel] " Christoph Hellwig
2023-05-31 15:50 ` [PATCH v7 00/20] bio: check return values of bio_add_page Jens Axboe
2023-05-31 15:50   ` [Cluster-devel] " Jens Axboe
2023-05-31 15:50   ` [dm-devel] " Jens Axboe

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=cover.1685532726.git.johannes.thumshirn@wdc.com \
    --to=johannes.thumshirn@wdc.com \
    --cc=agruenba@redhat.com \
    --cc=axboe@kernel.dk \
    --cc=cluster-devel@redhat.com \
    --cc=damien.lemoal@wdc.com \
    --cc=dm-devel@redhat.com \
    --cc=gouha7@uniontech.com \
    --cc=hare@suse.de \
    --cc=hch@lst.de \
    --cc=jfs-discussion@lists.sourceforge.net \
    --cc=kch@nvidia.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-raid@vger.kernel.org \
    --cc=ming.lei@redhat.com \
    --cc=mpatocka@redhat.com \
    --cc=rpeterso@redhat.com \
    --cc=shaggy@kernel.org \
    --cc=snitzer@kernel.org \
    --cc=song@kernel.org \
    --cc=willy@infradead.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 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.