All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Johannes Thumshirn <johannes.thumshirn@wdc.com>,
	syzbot+d8941552e21eac774778@syzkaller.appspotmail.com,
	Christoph Hellwig <hch@lst.de>,
	Anand Jain <anand.jain@oracle.com>,
	David Sterba <dsterba@suse.com>, Sasha Levin <sashal@kernel.org>,
	clm@fb.com, josef@toxicpanda.com, linux-btrfs@vger.kernel.org
Subject: [PATCH AUTOSEL 5.15 13/24] btrfs: handle memory allocation failure in btrfs_csum_one_bio
Date: Wed, 31 May 2023 09:43:09 -0400	[thread overview]
Message-ID: <20230531134320.3384102-13-sashal@kernel.org> (raw)
In-Reply-To: <20230531134320.3384102-1-sashal@kernel.org>

From: Johannes Thumshirn <johannes.thumshirn@wdc.com>

[ Upstream commit 806570c0bb7b4847828c22c4934fcf2dc8fc572f ]

Since f8a53bb58ec7 ("btrfs: handle checksum generation in the storage
layer") the failures of btrfs_csum_one_bio() are handled via
bio_end_io().

This means, we can return BLK_STS_RESOURCE from btrfs_csum_one_bio() in
case the allocation of the ordered sums fails.

This also fixes a syzkaller report, where injecting a failure into the
kvzalloc() call results in a BUG_ON().

Reported-by: syzbot+d8941552e21eac774778@syzkaller.appspotmail.com
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 fs/btrfs/file-item.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/btrfs/file-item.c b/fs/btrfs/file-item.c
index dd8b02a2a14a0..4c210b2ac6994 100644
--- a/fs/btrfs/file-item.c
+++ b/fs/btrfs/file-item.c
@@ -700,7 +700,9 @@ blk_status_t btrfs_csum_one_bio(struct btrfs_inode *inode, struct bio *bio,
 				sums = kvzalloc(btrfs_ordered_sum_size(fs_info,
 						      bytes_left), GFP_KERNEL);
 				memalloc_nofs_restore(nofs_flag);
-				BUG_ON(!sums); /* -ENOMEM */
+				if (!sums)
+					return BLK_STS_RESOURCE;
+
 				sums->len = bytes_left;
 				ordered = btrfs_lookup_ordered_extent(inode,
 								offset);
-- 
2.39.2


  parent reply	other threads:[~2023-05-31 13:49 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-31 13:42 [PATCH AUTOSEL 5.15 01/24] power: supply: ab8500: Fix external_power_changed race Sasha Levin
2023-05-31 13:42 ` [PATCH AUTOSEL 5.15 02/24] power: supply: sc27xx: " Sasha Levin
2023-05-31 13:42 ` [PATCH AUTOSEL 5.15 03/24] power: supply: bq27xxx: Use mod_delayed_work() instead of cancel() + schedule() Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 04/24] ARM: dts: vexpress: add missing cache properties Sasha Levin
2023-05-31 13:43   ` Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 05/24] tools: gpio: fix debounce_period_us output of lsgpio Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 06/24] power: supply: Ratelimit no data debug output Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 07/24] platform/x86: asus-wmi: Ignore WMI events with codes 0x7B, 0xC0 Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 08/24] regulator: Fix error checking for debugfs_create_dir Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 09/24] irqchip/gic-v3: Disable pseudo NMIs on Mediatek devices w/ firmware issues Sasha Levin
2023-05-31 13:43   ` Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 10/24] power: supply: Fix logic checking if system is running from battery Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 11/24] ASoC: lpass: Fix for KASAN use_after_free out of bounds Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 12/24] btrfs: scrub: try harder to mark RAID56 block groups read-only Sasha Levin
2023-05-31 13:43 ` Sasha Levin [this message]
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 14/24] ASoC: soc-pcm: test if a BE can be prepared Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 15/24] parisc: Improve cache flushing for PCXL in arch_sync_dma_for_cpu() Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 16/24] parisc: Flush gatt writes and adjust gatt mask in parisc_agp_mask_memory() Sasha Levin
2023-05-31 13:43   ` Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 17/24] MIPS: unhide PATA_PLATFORM Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 18/24] MIPS: Restore Au1300 support Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 19/24] MIPS: Alchemy: fix dbdma2 Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 20/24] mips: Move initrd_start check after initrd address sanitisation Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 21/24] ASoC: dwc: move DMA init to snd_soc_dai_driver probe() Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 22/24] xen/blkfront: Only check REQ_FUA for writes Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 23/24] drm:amd:amdgpu: Fix missing buffer object unlock in failure path Sasha Levin
2023-05-31 13:43   ` Sasha Levin
2023-05-31 13:43   ` Sasha Levin
2023-05-31 13:43 ` [PATCH AUTOSEL 5.15 24/24] NVMe: Add MAXIO 1602 to bogus nid list Sasha Levin

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=20230531134320.3384102-13-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=anand.jain@oracle.com \
    --cc=clm@fb.com \
    --cc=dsterba@suse.com \
    --cc=hch@lst.de \
    --cc=johannes.thumshirn@wdc.com \
    --cc=josef@toxicpanda.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=syzbot+d8941552e21eac774778@syzkaller.appspotmail.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 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.