stable.vger.kernel.org archive mirror
 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, Dave Chinner <dchinner@redhat.com>,
	Christoph Hellwig <hch@lst.de>,
	"Darrick J. Wong" <darrick.wong@oracle.com>,
	"Darrick J. Wong" <djwong@kernel.org>,
	Chandan Babu R <chandan.babu@oracle.com>
Subject: [PATCH 5.4 015/120] iomap: iomap that extends beyond EOF should be marked dirty
Date: Mon, 26 Sep 2022 12:10:48 +0200	[thread overview]
Message-ID: <20220926100751.145723992@linuxfoundation.org> (raw)
In-Reply-To: <20220926100750.519221159@linuxfoundation.org>

From: Chandan Babu R <chandan.babu@oracle.com>

From: Dave Chinner <dchinner@redhat.com>

commit 7684e2c4384d5d1f884b01ab8bff2369e4db0bff upstream.

When doing a direct IO that spans the current EOF, and there are
written blocks beyond EOF that extend beyond the current write, the
only metadata update that needs to be done is a file size extension.

However, we don't mark such iomaps as IOMAP_F_DIRTY to indicate that
there is IO completion metadata updates required, and hence we may
fail to correctly sync file size extensions made in IO completion
when O_DSYNC writes are being used and the hardware supports FUA.

Hence when setting IOMAP_F_DIRTY, we need to also take into account
whether the iomap spans the current EOF. If it does, then we need to
mark it dirty so that IO completion will call generic_write_sync()
to flush the inode size update to stable storage correctly.

Fixes: 3460cac1ca76 ("iomap: Use FUA for pure data O_DSYNC DIO writes")
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
[darrick: removed the ext4 part; they'll handle it separately]
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/xfs_iomap.c    |    7 +++++++
 include/linux/iomap.h |    2 ++
 2 files changed, 9 insertions(+)

--- a/fs/xfs/xfs_iomap.c
+++ b/fs/xfs/xfs_iomap.c
@@ -1055,6 +1055,13 @@ xfs_file_iomap_begin(
 	trace_xfs_iomap_alloc(ip, offset, length, XFS_DATA_FORK, &imap);
 
 out_finish:
+	/*
+	 * Writes that span EOF might trigger an IO size update on completion,
+	 * so consider them to be dirty for the purposes of O_DSYNC even if
+	 * there is no other metadata changes pending or have been made here.
+	 */
+	if ((flags & IOMAP_WRITE) && offset + length > i_size_read(inode))
+		iomap->flags |= IOMAP_F_DIRTY;
 	return xfs_bmbt_to_iomap(ip, iomap, &imap, shared);
 
 out_found:
--- a/include/linux/iomap.h
+++ b/include/linux/iomap.h
@@ -32,6 +32,8 @@ struct vm_fault;
  *
  * IOMAP_F_DIRTY indicates the inode has uncommitted metadata needed to access
  * written data and requires fdatasync to commit them to persistent storage.
+ * This needs to take into account metadata changes that *may* be made at IO
+ * completion, such as file size updates from direct IO.
  */
 #define IOMAP_F_NEW		0x01	/* blocks have been newly allocated */
 #define IOMAP_F_DIRTY		0x02	/* uncommitted metadata */



  parent reply	other threads:[~2022-09-26 10:35 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 ` Greg Kroah-Hartman [this message]
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 ` [PATCH 5.4 114/120] xfs: stabilize insert range start boundary to avoid COW writeback race Greg Kroah-Hartman
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=20220926100751.145723992@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=chandan.babu@oracle.com \
    --cc=darrick.wong@oracle.com \
    --cc=dchinner@redhat.com \
    --cc=djwong@kernel.org \
    --cc=hch@lst.de \
    --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;
as well as URLs for NNTP newsgroup(s).