public inbox for stable@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, "Darrick J. Wong" <djwong@kernel.org>,
	Sarthak Kukreti <sarthakkukreti@chromium.org>,
	Christoph Hellwig <hch@lst.de>, Mike Snitzer <snitzer@kernel.org>,
	Jens Axboe <axboe@kernel.dk>
Subject: [PATCH 5.10 02/43] block: Dont invalidate pagecache for invalid falloc modes
Date: Sat, 13 Jan 2024 10:49:41 +0100	[thread overview]
Message-ID: <20240113094207.010915551@linuxfoundation.org> (raw)
In-Reply-To: <20240113094206.930684111@linuxfoundation.org>

5.10-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Sarthak Kukreti <sarthakkukreti@chromium.org>

commit 1364a3c391aedfeb32aa025303ead3d7c91cdf9d upstream.

Only call truncate_bdev_range() if the fallocate mode is supported. This
fixes a bug where data in the pagecache could be invalidated if the
fallocate() was called on the block device with an invalid mode.

Fixes: 25f4c41415e5 ("block: implement (some of) fallocate for block devices")
Cc: stable@vger.kernel.org
Reported-by: "Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: Sarthak Kukreti <sarthakkukreti@chromium.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Fixes: line?  I've never seen those wrapped.
Link: https://lore.kernel.org/r/20231011201230.750105-1-sarthakkukreti@chromium.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sarthak Kukreti <sarthakkukreti@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/block_dev.c |   21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -2031,22 +2031,33 @@ static long blkdev_fallocate(struct file
 	if ((start | len) & (bdev_logical_block_size(bdev) - 1))
 		return -EINVAL;
 
-	/* Invalidate the page cache, including dirty pages. */
-	error = truncate_bdev_range(bdev, file->f_mode, start, end);
-	if (error)
-		return error;
-
+	/*
+	 * Invalidate the page cache, including dirty pages, for valid
+	 * de-allocate mode calls to fallocate().
+	 */
 	switch (mode) {
 	case FALLOC_FL_ZERO_RANGE:
 	case FALLOC_FL_ZERO_RANGE | FALLOC_FL_KEEP_SIZE:
+		error = truncate_bdev_range(bdev, file->f_mode, start, end);
+		if (error)
+			break;
+
 		error = blkdev_issue_zeroout(bdev, start >> 9, len >> 9,
 					    GFP_KERNEL, BLKDEV_ZERO_NOUNMAP);
 		break;
 	case FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE:
+		error = truncate_bdev_range(bdev, file->f_mode, start, end);
+		if (error)
+			break;
+
 		error = blkdev_issue_zeroout(bdev, start >> 9, len >> 9,
 					     GFP_KERNEL, BLKDEV_ZERO_NOFALLBACK);
 		break;
 	case FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE | FALLOC_FL_NO_HIDE_STALE:
+		error = truncate_bdev_range(bdev, file->f_mode, start, end);
+		if (error)
+			break;
+
 		error = blkdev_issue_discard(bdev, start >> 9, len >> 9,
 					     GFP_KERNEL, 0);
 		break;



  parent reply	other threads:[~2024-01-13  9:57 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-13  9:49 [PATCH 5.10 00/43] 5.10.208-rc1 review Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 01/43] keys, dns: Fix missing size check of V1 server-list header Greg Kroah-Hartman
2024-01-13  9:49 ` Greg Kroah-Hartman [this message]
2024-01-13  9:49 ` [PATCH 5.10 03/43] ALSA: hda/realtek: Fix mute and mic-mute LEDs for HP ProBook 440 G6 Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 04/43] nfc: llcp_core: Hold a ref to llcp_local->dev when holding a ref to llcp_local Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 05/43] octeontx2-af: Fix marking couple of structure as __packed Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 06/43] drm/i915/dp: Fix passing the correct DPCD_REV for drm_dp_set_phy_test_pattern Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 07/43] i40e: Fix filter input checks to prevent config with invalid values Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 08/43] net: sched: em_text: fix possible memory leak in em_text_destroy() Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 09/43] net: Implement missing getsockopt(SO_TIMESTAMPING_NEW) Greg Kroah-Hartman
2024-01-13 19:25   ` Jörn-Thorben Hinz
2024-01-13 20:43     ` Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 10/43] ARM: sun9i: smp: Fix array-index-out-of-bounds read in sunxi_mc_smp_init Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 11/43] sfc: fix a double-free bug in efx_probe_filters Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 12/43] net: bcmgenet: Fix FCS generation for fragmented skbuffs Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 13/43] netfilter: nftables: add loop check helper function Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 14/43] netfilter: nft_immediate: drop chain reference counter on error Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 15/43] net: Save and restore msg_namelen in sock_sendmsg Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 16/43] i40e: fix use-after-free in i40e_aqc_add_filters() Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 17/43] ASoC: meson: g12a-toacodec: Validate written enum values Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 18/43] ASoC: meson: g12a-tohdmitx: " Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 19/43] ASoC: meson: g12a-toacodec: Fix event generation Greg Kroah-Hartman
2024-01-13  9:49 ` [PATCH 5.10 20/43] ASoC: meson: g12a-tohdmitx: Fix event generation for S/PDIF mux Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 21/43] i40e: Restore VF MSI-X state during PCI reset Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 22/43] net/qla3xxx: switch from pci_ to dma_ API Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 23/43] net/qla3xxx: fix potential memleak in ql_alloc_buffer_queues Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 24/43] asix: Add check for usbnet_get_endpoints Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 25/43] bnxt_en: Remove mis-applied code from bnxt_cfg_ntp_filters() Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 26/43] net: Implement missing SO_TIMESTAMPING_NEW cmsg support Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 27/43] mm/memory-failure: check the mapcount of the precise page Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 28/43] firewire: ohci: suppress unexpected system reboot in AMD Ryzen machines and ASM108x/VT630x PCIe cards Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 29/43] x86/kprobes: fix incorrect return address calculation in kprobe_emulate_call_indirect Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 30/43] i2c: core: Fix atomic xfer check for non-preempt config Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 31/43] mm: fix unmap_mapping_range high bits shift bug Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 32/43] mmc: meson-mx-sdhc: Fix initialization frozen issue Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 33/43] mmc: rpmb: fixes pause retune on all RPMB partitions Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 34/43] mmc: core: Cancel delayed work before releasing host Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 35/43] mmc: sdhci-sprd: Fix eMMC init failure after hw reset Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 36/43] powerpc: update ppc_save_regs to save current r1 in pt_regs Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 37/43] net: tls, update curr on splice as well Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 38/43] ipv6: remove max_size check inline with ipv4 Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 39/43] drm/qxl: fix UAF on handle creation Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 40/43] netfilter: nf_tables: Reject tables of unsupported family Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 41/43] PCI: Extract ATS disabling to a helper function Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 42/43] PCI: Disable ATS for specific Intel IPU E2000 devices Greg Kroah-Hartman
2024-01-13  9:50 ` [PATCH 5.10 43/43] Revert "nvme: use command_id instead of req->tag in trace_nvme_complete_rq()" Greg Kroah-Hartman
2024-01-14 10:33 ` [PATCH 5.10 00/43] 5.10.208-rc1 review Pavel Machek
2024-01-15  4:48 ` Dominique Martinet
2024-01-15  9:51 ` Naresh Kamboju
2024-01-15 10:23 ` Jon Hunter
2024-01-15 11:47 ` Shreeya Patel
2024-01-15 19:09 ` Florian Fainelli
2024-01-15 19:47 ` Allen

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=20240113094207.010915551@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=axboe@kernel.dk \
    --cc=djwong@kernel.org \
    --cc=hch@lst.de \
    --cc=patches@lists.linux.dev \
    --cc=sarthakkukreti@chromium.org \
    --cc=snitzer@kernel.org \
    --cc=stable@vger.kernel.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