public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Brian Foster <bfoster@redhat.com>,
	"Darrick J. Wong" <darrick.wong@oracle.com>,
	"Darrick J. Wong" <djwong@kernel.org>,
	Chandan Babu R <chandan.babu@oracle.com>
Subject: [PATCH 5.4 114/120] xfs: stabilize insert range start boundary to avoid COW writeback race
Date: Mon, 26 Sep 2022 12:12:27 +0200	[thread overview]
Message-ID: <20220926100755.090442267@linuxfoundation.org> (raw)
In-Reply-To: <20220926100750.519221159@linuxfoundation.org>

From: Brian Foster <bfoster@redhat.com>

commit d0c2204135a0cdbc607c94c481cf1ccb2f659aa7 upstream.

generic/522 (fsx) occasionally fails with a file corruption due to
an insert range operation. The primary characteristic of the
corruption is a misplaced insert range operation that differs from
the requested target offset. The reason for this behavior is a race
between the extent shift sequence of an insert range and a COW
writeback completion that causes a front merge with the first extent
in the shift.

The shift preparation function flushes and unmaps from the target
offset of the operation to the end of the file to ensure no
modifications can be made and page cache is invalidated before file
data is shifted. An insert range operation then splits the extent at
the target offset, if necessary, and begins to shift the start
offset of each extent starting from the end of the file to the start
offset. The shift sequence operates at extent level and so depends
on the preparation sequence to guarantee no changes can be made to
the target range during the shift. If the block immediately prior to
the target offset was dirty and shared, however, it can undergo
writeback and move from the COW fork to the data fork at any point
during the shift. If the block is contiguous with the block at the
start offset of the insert range, it can front merge and alter the
start offset of the extent. Once the shift sequence reaches the
target offset, it shifts based on the latest start offset and
silently changes the target offset of the operation and corrupts the
file.

To address this problem, update the shift preparation code to
stabilize the start boundary along with the full range of the
insert. Also update the existing corruption check to fail if any
extent is shifted with a start offset behind the target offset of
the insert range. This prevents insert from racing with COW
writeback completion and fails loudly in the event of an unexpected
extent shift.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Acked-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Chandan Babu R <chandan.babu@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 fs/xfs/libxfs/xfs_bmap.c |    2 +-
 fs/xfs/xfs_bmap_util.c   |   12 ++++++++++++
 2 files changed, 13 insertions(+), 1 deletion(-)

--- a/fs/xfs/libxfs/xfs_bmap.c
+++ b/fs/xfs/libxfs/xfs_bmap.c
@@ -5876,7 +5876,7 @@ xfs_bmap_insert_extents(
 	XFS_WANT_CORRUPTED_GOTO(mp, !isnullstartblock(got.br_startblock),
 				del_cursor);
 
-	if (stop_fsb >= got.br_startoff + got.br_blockcount) {
+	if (stop_fsb > got.br_startoff) {
 		ASSERT(0);
 		error = -EFSCORRUPTED;
 		goto del_cursor;
--- a/fs/xfs/xfs_bmap_util.c
+++ b/fs/xfs/xfs_bmap_util.c
@@ -1167,6 +1167,7 @@ xfs_prepare_shift(
 	struct xfs_inode	*ip,
 	loff_t			offset)
 {
+	struct xfs_mount	*mp = ip->i_mount;
 	int			error;
 
 	/*
@@ -1180,6 +1181,17 @@ xfs_prepare_shift(
 	}
 
 	/*
+	 * Shift operations must stabilize the start block offset boundary along
+	 * with the full range of the operation. If we don't, a COW writeback
+	 * completion could race with an insert, front merge with the start
+	 * extent (after split) during the shift and corrupt the file. Start
+	 * with the block just prior to the start to stabilize the boundary.
+	 */
+	offset = round_down(offset, 1 << mp->m_sb.sb_blocklog);
+	if (offset)
+		offset -= (1 << mp->m_sb.sb_blocklog);
+
+	/*
 	 * Writeback and invalidate cache for the remainder of the file as we're
 	 * about to shift down every extent from offset to EOF.
 	 */



  parent reply	other threads:[~2022-09-26 10:48 UTC|newest]

Thread overview: 132+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-26 10:10 [PATCH 5.4 000/120] 5.4.215-rc1 review Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 001/120] of: fdt: fix off-by-one error in unflatten_dt_nodes() Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 002/120] NFSv4: Turn off open-by-filehandle and NFS re-export for NFSv4.0 Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 003/120] gpio: mpc8xxx: Fix support for IRQ_TYPE_LEVEL_LOW flow_type in mpc85xx Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 004/120] drm/meson: Correct OSD1 global alpha value Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 005/120] drm/meson: Fix OSD1 RGB to YCbCr coefficient Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 006/120] parisc: ccio-dma: Add missing iounmap in error path in ccio_probe() Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 007/120] efi/libstub: Disable Shadow Call Stack Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 008/120] efi: libstub: Disable struct randomization Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 009/120] ALSA: pcm: oss: Fix race at SNDCTL_DSP_SYNC Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 010/120] task_stack, x86/cea: Force-inline stack helpers Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 011/120] tracing: hold caller_addr to hardirq_{enable,disable}_ip Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 012/120] cifs: revalidate mapping when doing direct writes Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 013/120] cifs: dont send down the destination address to sendmsg for a SOCK_STREAM Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 014/120] MAINTAINERS: add Chandan as xfs maintainer for 5.4.y Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 015/120] iomap: iomap that extends beyond EOF should be marked dirty Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 016/120] ASoC: nau8824: Fix semaphore unbalance at error paths Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 017/120] regulator: pfuze100: Fix the global-out-of-bounds access in pfuze100_regulator_probe() Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 018/120] rxrpc: Fix local destruction being repeated Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 019/120] rxrpc: Fix calc of resend age Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 020/120] ALSA: hda/sigmatel: Keep power up while beep is enabled Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 021/120] ALSA: hda/tegra: Align BDL entry to 4KB boundary Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 022/120] net: usb: qmi_wwan: add Quectel RM520N Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 023/120] afs: Return -EAGAIN, not -EREMOTEIO, when a file already locked Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 024/120] MIPS: OCTEON: irq: Fix octeon_irq_force_ciu_mapping() Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 025/120] mksysmap: Fix the mismatch of L0 symbols in System.map Greg Kroah-Hartman
2022-09-26 10:10 ` [PATCH 5.4 026/120] video: fbdev: pxa3xx-gcu: Fix integer overflow in pxa3xx_gcu_write Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 027/120] cgroup: Add missing cpus_read_lock() to cgroup_attach_task_all() Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 028/120] ALSA: hda/sigmatel: Fix unused variable warning for beep power change Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 029/120] usb: dwc3: gadget: Avoid starting DWC3 gadget during UDC unbind Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 030/120] usb: dwc3: Issue core soft reset before enabling run/stop Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 031/120] usb: dwc3: gadget: Prevent repeat pullup() Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 032/120] usb: dwc3: gadget: Refactor pullup() Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 033/120] usb: dwc3: gadget: Dont modify GEVNTCOUNT in pullup() Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 034/120] usb: dwc3: gadget: Avoid duplicate requests to enable Run/Stop Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 035/120] usb: xhci-mtk: get the microframe boundary for ESIT Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 036/120] usb: xhci-mtk: add only one extra CS for FS/LS INTR Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 037/120] usb: xhci-mtk: use @sch_tt to check whether need do TT schedule Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 038/120] usb: xhci-mtk: add a function to (un)load bandwidth info Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 039/120] usb: xhci-mtk: add some schedule error number Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 040/120] usb: xhci-mtk: allow multiple Start-Split in a microframe Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 041/120] usb: xhci-mtk: relax TT periodic bandwidth allocation Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 042/120] iio:adc:mcp3911: Switch to generic firmware properties Greg Kroah-Hartman
2022-09-26 11:50   ` Jonathan Cameron
2022-09-26 16:05     ` Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 043/120] iio: adc: mcp3911: correct "microchip,device-addr" property Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 044/120] wifi: mac80211: Fix UAF in ieee80211_scan_rx() Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 045/120] tty/serial: atmel: RS485 & ISO7816: wait for TXRDY before sending data Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 046/120] serial: atmel: remove redundant assignment in rs485_config Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 047/120] tty: serial: atmel: Preserve previous USART mode if RS485 disabled Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 048/120] usb: add quirks for Lenovo OneLink+ Dock Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 049/120] usb: gadget: udc-xilinx: replace memcpy with memcpy_toio Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 050/120] usb: cdns3: fix issue with rearming ISO OUT endpoint Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 051/120] Revert "usb: add quirks for Lenovo OneLink+ Dock" Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 052/120] Revert "usb: gadget: udc-xilinx: replace memcpy with memcpy_toio" Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 053/120] USB: core: Fix RST error in hub.c Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 054/120] USB: serial: option: add Quectel BG95 0x0203 composition Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 055/120] USB: serial: option: add Quectel RM520N Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 056/120] ALSA: hda/tegra: set depop delay for tegra Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 057/120] ALSA: hda: add Intel 5 Series / 3400 PCI DID Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 058/120] ALSA: hda/realtek: Add quirk for Huawei WRT-WX9 Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 059/120] ALSA: hda/realtek: Re-arrange quirk table entries Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 060/120] ALSA: hda/realtek: Add pincfg for ASUS G513 HP jack Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 061/120] ALSA: hda/realtek: Add pincfg for ASUS G533Z " Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 062/120] ALSA: hda/realtek: Add quirk for ASUS GA503R laptop Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 063/120] ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5530 laptop Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 064/120] efi: libstub: check Shim mode using MokSBStateRT Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 065/120] mm/slub: fix to return errno if kmalloc() fails Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 066/120] arm64: dts: rockchip: Pull up wlan wake# on Gru-Bob Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 067/120] arm64: dts: rockchip: Set RK3399-Gru PCLK_EDP to 24 MHz Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 068/120] arm64: dts: rockchip: Remove enable-active-low from rk3399-puma Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 069/120] netfilter: nf_conntrack_sip: fix ct_sip_walk_headers Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 070/120] netfilter: nf_conntrack_irc: Tighten matching on DCC message Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 071/120] netfilter: nfnetlink_osf: fix possible bogus match in nf_osf_find() Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 072/120] iavf: Fix cached head and tail value for iavf_get_tx_pending Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 073/120] ipvlan: Fix out-of-bound bugs caused by unset skb->mac_header Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 074/120] net: team: Unsync device addresses on ndo_stop Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 075/120] MIPS: lantiq: export clk_get_io() for lantiq_wdt.ko Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 076/120] MIPS: Loongson32: Fix PHY-mode being left unspecified Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 077/120] iavf: Fix bad page state Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 078/120] iavf: Fix set max MTU size with port VLAN and jumbo frames Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 079/120] i40e: Fix VF set max MTU size Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 080/120] i40e: Fix set max_tx_rate when it is lower than 1 Mbps Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 081/120] of: mdio: Add of_node_put() when breaking out of for_each_xx Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 082/120] net/sched: taprio: avoid disabling offload when it was never enabled Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 083/120] net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child qdiscs Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 084/120] netfilter: ebtables: fix memory leak when blob is malformed Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 085/120] can: gs_usb: gs_can_open(): fix race dev->can.state condition Greg Kroah-Hartman
2022-09-26 10:11 ` [PATCH 5.4 086/120] perf jit: Include program header in ELF files Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 087/120] perf kcore_copy: Do not check /proc/modules is unchanged Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 088/120] net: sunhme: Fix packet reception for len < RX_COPY_THRESHOLD Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 089/120] net: sched: fix possible refcount leak in tc_new_tfilter() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 090/120] serial: Create uart_xmit_advance() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 091/120] serial: tegra: Use uart_xmit_advance(), fixes icount.tx accounting Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 092/120] serial: tegra-tcu: " Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 093/120] s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 094/120] usb: xhci-mtk: fix issue of out-of-bounds array access Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 095/120] cifs: always initialize struct msghdr smb_msg completely Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 096/120] Drivers: hv: Never allocate anything besides framebuffer from framebuffer memory region Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 097/120] gpio: ixp4xx: Make irqchip immutable Greg Kroah-Hartman
2022-09-26 10:40   ` Marc Zyngier
2022-09-26 15:58     ` Greg Kroah-Hartman
2022-09-28 16:22       ` Sasha Levin
2022-09-26 10:12 ` [PATCH 5.4 098/120] drm/amdgpu: use dirty framebuffer helper Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 099/120] drm/amd/display: Limit user regamma to a valid value Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 100/120] drm/rockchip: Fix return type of cdn_dp_connector_mode_valid Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 101/120] workqueue: dont skip lockdep work dependency in cancel_work_sync() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 102/120] ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0 Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 103/120] ext4: make directory inode spreading reflect flexbg size Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 104/120] xfs: replace -EIO with -EFSCORRUPTED for corrupt metadata Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 105/120] xfs: slightly tweak an assert in xfs_fs_map_blocks Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 106/120] xfs: add missing assert in xfs_fsmap_owner_from_rmap Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 107/120] xfs: range check ri_cnt when recovering log items Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 108/120] xfs: attach dquots and reserve quota blocks during unwritten conversion Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 109/120] xfs: Fix deadlock between AGI and AGF when target_ip exists in xfs_rename() Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 110/120] xfs: convert EIO to EFSCORRUPTED when log contents are invalid Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 111/120] xfs: constify the buffer pointer arguments to error functions Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 112/120] xfs: always log corruption errors Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 113/120] xfs: fix some memory leaks in log recovery Greg Kroah-Hartman
2022-09-26 10:12 ` Greg Kroah-Hartman [this message]
2022-09-26 10:12 ` [PATCH 5.4 115/120] xfs: use bitops interface for buf log item AIL flag check Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 116/120] xfs: refactor agfl length computation function Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 117/120] xfs: split the sunit parameter update into two parts Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 118/120] xfs: dont commit sunit/swidth updates to disk if that would cause repair failures Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 119/120] xfs: fix an ABBA deadlock in xfs_rename Greg Kroah-Hartman
2022-09-26 10:12 ` [PATCH 5.4 120/120] xfs: fix use-after-free when aborting corrupt attr inactivation Greg Kroah-Hartman
2022-09-26 13:38 ` [PATCH 5.4 000/120] 5.4.215-rc1 review Guenter Roeck
2022-09-26 15:59   ` Greg Kroah-Hartman
2022-09-26 14:13 ` Naresh Kamboju
2022-09-26 14:25   ` Marc Zyngier
2022-09-26 16:00     ` Greg Kroah-Hartman
2022-09-27  0:54 ` Shuah Khan

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=20220926100755.090442267@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=bfoster@redhat.com \
    --cc=chandan.babu@oracle.com \
    --cc=darrick.wong@oracle.com \
    --cc=djwong@kernel.org \
    --cc=linux-kernel@vger.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