From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev,
Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>,
Trond Myklebust <trond.myklebust@hammerspace.com>,
Anna Schumaker <anna.schumaker@oracle.com>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.12 198/232] NFSv4/flexfiles: Fix handling of NFS level errors in I/O
Date: Tue, 8 Jul 2025 18:23:14 +0200 [thread overview]
Message-ID: <20250708162246.618230659@linuxfoundation.org> (raw)
In-Reply-To: <20250708162241.426806072@linuxfoundation.org>
6.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Trond Myklebust <trond.myklebust@hammerspace.com>
[ Upstream commit 38074de35b015df5623f524d6f2b49a0cd395c40 ]
Allow the flexfiles error handling to recognise NFS level errors (as
opposed to RPC level errors) and handle them separately. The main
motivator is the NFSERR_PERM errors that get returned if the NFS client
connects to the data server through a port number that is lower than
1024. In that case, the client should disconnect and retry a READ on a
different data server, or it should retry a WRITE after reconnecting.
Reviewed-by: Tigran Mkrtchyan <tigran.mkrtchyan@desy.de>
Fixes: d67ae825a59d ("pnfs/flexfiles: Add the FlexFile Layout Driver")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/nfs/flexfilelayout/flexfilelayout.c | 121 ++++++++++++++++++-------
1 file changed, 87 insertions(+), 34 deletions(-)
diff --git a/fs/nfs/flexfilelayout/flexfilelayout.c b/fs/nfs/flexfilelayout/flexfilelayout.c
index 8f7ea4076653d..bf96f7a8900c1 100644
--- a/fs/nfs/flexfilelayout/flexfilelayout.c
+++ b/fs/nfs/flexfilelayout/flexfilelayout.c
@@ -1104,6 +1104,7 @@ static void ff_layout_reset_read(struct nfs_pgio_header *hdr)
}
static int ff_layout_async_handle_error_v4(struct rpc_task *task,
+ u32 op_status,
struct nfs4_state *state,
struct nfs_client *clp,
struct pnfs_layout_segment *lseg,
@@ -1114,32 +1115,42 @@ static int ff_layout_async_handle_error_v4(struct rpc_task *task,
struct nfs4_deviceid_node *devid = FF_LAYOUT_DEVID_NODE(lseg, idx);
struct nfs4_slot_table *tbl = &clp->cl_session->fc_slot_table;
- switch (task->tk_status) {
- case -NFS4ERR_BADSESSION:
- case -NFS4ERR_BADSLOT:
- case -NFS4ERR_BAD_HIGH_SLOT:
- case -NFS4ERR_DEADSESSION:
- case -NFS4ERR_CONN_NOT_BOUND_TO_SESSION:
- case -NFS4ERR_SEQ_FALSE_RETRY:
- case -NFS4ERR_SEQ_MISORDERED:
+ switch (op_status) {
+ case NFS4_OK:
+ case NFS4ERR_NXIO:
+ break;
+ case NFSERR_PERM:
+ if (!task->tk_xprt)
+ break;
+ xprt_force_disconnect(task->tk_xprt);
+ goto out_retry;
+ case NFS4ERR_BADSESSION:
+ case NFS4ERR_BADSLOT:
+ case NFS4ERR_BAD_HIGH_SLOT:
+ case NFS4ERR_DEADSESSION:
+ case NFS4ERR_CONN_NOT_BOUND_TO_SESSION:
+ case NFS4ERR_SEQ_FALSE_RETRY:
+ case NFS4ERR_SEQ_MISORDERED:
dprintk("%s ERROR %d, Reset session. Exchangeid "
"flags 0x%x\n", __func__, task->tk_status,
clp->cl_exchange_flags);
nfs4_schedule_session_recovery(clp->cl_session, task->tk_status);
- break;
- case -NFS4ERR_DELAY:
- case -NFS4ERR_GRACE:
+ goto out_retry;
+ case NFS4ERR_DELAY:
+ nfs_inc_stats(lseg->pls_layout->plh_inode, NFSIOS_DELAY);
+ fallthrough;
+ case NFS4ERR_GRACE:
rpc_delay(task, FF_LAYOUT_POLL_RETRY_MAX);
- break;
- case -NFS4ERR_RETRY_UNCACHED_REP:
- break;
+ goto out_retry;
+ case NFS4ERR_RETRY_UNCACHED_REP:
+ goto out_retry;
/* Invalidate Layout errors */
- case -NFS4ERR_PNFS_NO_LAYOUT:
- case -ESTALE: /* mapped NFS4ERR_STALE */
- case -EBADHANDLE: /* mapped NFS4ERR_BADHANDLE */
- case -EISDIR: /* mapped NFS4ERR_ISDIR */
- case -NFS4ERR_FHEXPIRED:
- case -NFS4ERR_WRONG_TYPE:
+ case NFS4ERR_PNFS_NO_LAYOUT:
+ case NFS4ERR_STALE:
+ case NFS4ERR_BADHANDLE:
+ case NFS4ERR_ISDIR:
+ case NFS4ERR_FHEXPIRED:
+ case NFS4ERR_WRONG_TYPE:
dprintk("%s Invalid layout error %d\n", __func__,
task->tk_status);
/*
@@ -1152,6 +1163,11 @@ static int ff_layout_async_handle_error_v4(struct rpc_task *task,
pnfs_destroy_layout(NFS_I(inode));
rpc_wake_up(&tbl->slot_tbl_waitq);
goto reset;
+ default:
+ break;
+ }
+
+ switch (task->tk_status) {
/* RPC connection errors */
case -ECONNREFUSED:
case -EHOSTDOWN:
@@ -1167,26 +1183,56 @@ static int ff_layout_async_handle_error_v4(struct rpc_task *task,
nfs4_delete_deviceid(devid->ld, devid->nfs_client,
&devid->deviceid);
rpc_wake_up(&tbl->slot_tbl_waitq);
- fallthrough;
+ break;
default:
- if (ff_layout_avoid_mds_available_ds(lseg))
- return -NFS4ERR_RESET_TO_PNFS;
-reset:
- dprintk("%s Retry through MDS. Error %d\n", __func__,
- task->tk_status);
- return -NFS4ERR_RESET_TO_MDS;
+ break;
}
+
+ if (ff_layout_avoid_mds_available_ds(lseg))
+ return -NFS4ERR_RESET_TO_PNFS;
+reset:
+ dprintk("%s Retry through MDS. Error %d\n", __func__,
+ task->tk_status);
+ return -NFS4ERR_RESET_TO_MDS;
+
+out_retry:
task->tk_status = 0;
return -EAGAIN;
}
/* Retry all errors through either pNFS or MDS except for -EJUKEBOX */
static int ff_layout_async_handle_error_v3(struct rpc_task *task,
+ u32 op_status,
+ struct nfs_client *clp,
struct pnfs_layout_segment *lseg,
u32 idx)
{
struct nfs4_deviceid_node *devid = FF_LAYOUT_DEVID_NODE(lseg, idx);
+ switch (op_status) {
+ case NFS_OK:
+ case NFSERR_NXIO:
+ break;
+ case NFSERR_PERM:
+ if (!task->tk_xprt)
+ break;
+ xprt_force_disconnect(task->tk_xprt);
+ goto out_retry;
+ case NFSERR_ACCES:
+ case NFSERR_BADHANDLE:
+ case NFSERR_FBIG:
+ case NFSERR_IO:
+ case NFSERR_NOSPC:
+ case NFSERR_ROFS:
+ case NFSERR_STALE:
+ goto out_reset_to_pnfs;
+ case NFSERR_JUKEBOX:
+ nfs_inc_stats(lseg->pls_layout->plh_inode, NFSIOS_DELAY);
+ goto out_retry;
+ default:
+ break;
+ }
+
switch (task->tk_status) {
/* File access problems. Don't mark the device as unavailable */
case -EACCES:
@@ -1205,6 +1251,7 @@ static int ff_layout_async_handle_error_v3(struct rpc_task *task,
nfs4_delete_deviceid(devid->ld, devid->nfs_client,
&devid->deviceid);
}
+out_reset_to_pnfs:
/* FIXME: Need to prevent infinite looping here. */
return -NFS4ERR_RESET_TO_PNFS;
out_retry:
@@ -1215,6 +1262,7 @@ static int ff_layout_async_handle_error_v3(struct rpc_task *task,
}
static int ff_layout_async_handle_error(struct rpc_task *task,
+ u32 op_status,
struct nfs4_state *state,
struct nfs_client *clp,
struct pnfs_layout_segment *lseg,
@@ -1233,10 +1281,11 @@ static int ff_layout_async_handle_error(struct rpc_task *task,
switch (vers) {
case 3:
- return ff_layout_async_handle_error_v3(task, lseg, idx);
- case 4:
- return ff_layout_async_handle_error_v4(task, state, clp,
+ return ff_layout_async_handle_error_v3(task, op_status, clp,
lseg, idx);
+ case 4:
+ return ff_layout_async_handle_error_v4(task, op_status, state,
+ clp, lseg, idx);
default:
/* should never happen */
WARN_ON_ONCE(1);
@@ -1289,6 +1338,7 @@ static void ff_layout_io_track_ds_error(struct pnfs_layout_segment *lseg,
switch (status) {
case NFS4ERR_DELAY:
case NFS4ERR_GRACE:
+ case NFS4ERR_PERM:
break;
case NFS4ERR_NXIO:
ff_layout_mark_ds_unreachable(lseg, idx);
@@ -1321,7 +1371,8 @@ static int ff_layout_read_done_cb(struct rpc_task *task,
trace_ff_layout_read_error(hdr);
}
- err = ff_layout_async_handle_error(task, hdr->args.context->state,
+ err = ff_layout_async_handle_error(task, hdr->res.op_status,
+ hdr->args.context->state,
hdr->ds_clp, hdr->lseg,
hdr->pgio_mirror_idx);
@@ -1491,7 +1542,8 @@ static int ff_layout_write_done_cb(struct rpc_task *task,
trace_ff_layout_write_error(hdr);
}
- err = ff_layout_async_handle_error(task, hdr->args.context->state,
+ err = ff_layout_async_handle_error(task, hdr->res.op_status,
+ hdr->args.context->state,
hdr->ds_clp, hdr->lseg,
hdr->pgio_mirror_idx);
@@ -1537,8 +1589,9 @@ static int ff_layout_commit_done_cb(struct rpc_task *task,
trace_ff_layout_commit_error(data);
}
- err = ff_layout_async_handle_error(task, NULL, data->ds_clp,
- data->lseg, data->ds_commit_index);
+ err = ff_layout_async_handle_error(task, data->res.op_status,
+ NULL, data->ds_clp, data->lseg,
+ data->ds_commit_index);
trace_nfs4_pnfs_commit_ds(data, err);
switch (err) {
--
2.39.5
next prev parent reply other threads:[~2025-07-08 16:46 UTC|newest]
Thread overview: 243+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-08 16:19 [PATCH 6.12 000/232] 6.12.37-rc1 review Greg Kroah-Hartman
2025-07-08 16:19 ` [PATCH 6.12 001/232] rtc: pcf2127: add missing semicolon after statement Greg Kroah-Hartman
2025-07-08 16:19 ` [PATCH 6.12 002/232] rtc: pcf2127: fix SPI command byte for PCF2131 Greg Kroah-Hartman
2025-07-08 16:19 ` [PATCH 6.12 003/232] rtc: cmos: use spin_lock_irqsave in cmos_interrupt Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 004/232] virtio-net: xsk: rx: fix the frames length check Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 005/232] virtio-net: ensure the received length does not exceed allocated size Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 006/232] s390/pci: Fix stale function handles in error handling Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 007/232] s390/pci: Do not try re-enabling load/store if device is disabled Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 008/232] net: txgbe: request MISC IRQ in ndo_open Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 009/232] vsock/vmci: Clear the vmci transport packet properly when initializing it Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 010/232] net: libwx: fix the incorrect display of the queue number Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 011/232] mmc: sdhci: Add a helper function for dump register in dynamic debug mode Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 012/232] Revert "mmc: sdhci: Disable SD card clock before changing parameters" Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 013/232] mmc: core: sd: Apply BROKEN_SD_DISCARD quirk earlier Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 014/232] Bluetooth: HCI: Set extended advertising data synchronously Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 015/232] Bluetooth: hci_sync: revert some mesh modifications Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 016/232] Bluetooth: MGMT: set_mesh: update LE scan interval and window Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 017/232] Bluetooth: MGMT: mesh_send: check instances prior disabling advertising Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 018/232] iommufd/selftest: Fix iommufd_dirty_tracking with large hugepage sizes Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 019/232] regulator: gpio: Fix the out-of-bounds access to drvdata::gpiods Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 020/232] Input: cs40l50-vibra - fix potential NULL dereference in cs40l50_upload_owt() Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 021/232] usb: typec: altmodes/displayport: do not index invalid pin_assignments Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 022/232] mtk-sd: Fix a pagefault in dma_unmap_sg() for not prepared data Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 023/232] mtk-sd: Prevent memory corruption from DMA map failure Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 024/232] mtk-sd: reset host->mrq on prepare_data() error Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 025/232] drm/v3d: Disable interrupts before resetting the GPU Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 026/232] firmware: arm_ffa: Fix memory leak by freeing notifier callback node Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 027/232] firmware: arm_ffa: Refactoring to prepare for framework notification support Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 028/232] firmware: arm_ffa: Stash ffa_device instead of notify_type in notifier_cb_info Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 029/232] firmware: arm_ffa: Add support for {un,}registration of framework notifications Greg Kroah-Hartman
2025-07-08 19:34 ` Sudeep Holla
2025-07-09 8:35 ` Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 030/232] firmware: arm_ffa: Move memory allocation outside the mutex locking Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 031/232] arm64: dts: apple: t8103: Fix PCIe BCM4377 nodename Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 032/232] platform/mellanox: mlxbf-tmfifo: fix vring_desc.len assignment Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 033/232] RDMA/mlx5: Fix unsafe xarray access in implicit ODP handling Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 034/232] RDMA/mlx5: Initialize obj_event->obj_sub_list before xa_insert Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 035/232] nfs: Clean up /proc/net/rpc/nfs when nfs_fs_proc_net_init() fails Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 036/232] NFSv4/pNFS: Fix a race to wake on NFS_LAYOUT_DRAIN Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 037/232] scsi: qla2xxx: Fix DMA mapping test in qla24xx_get_port_database() Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 038/232] scsi: qla4xxx: Fix missing DMA mapping error in qla4xxx_alloc_pdu() Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 039/232] scsi: sd: Fix VPD page 0xb7 length check Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 040/232] scsi: ufs: core: Fix spelling of a sysfs attribute name Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 041/232] RDMA/mlx5: Fix HW counters query for non-representor devices Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 042/232] RDMA/mlx5: Fix CC counters query for MPV Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 043/232] RDMA/mlx5: Fix vport loopback for MPV device Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 044/232] platform/mellanox: mlxbf-pmc: Fix duplicate event ID for CACHE_DATA1 Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 045/232] platform/mellanox: nvsw-sn2201: Fix bus number in adapter error message Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 046/232] Bluetooth: Prevent unintended pause by checking if advertising is active Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 047/232] btrfs: fix missing error handling when searching for inode refs during log replay Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 048/232] btrfs: fix iteration of extrefs " Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 049/232] btrfs: return a btrfs_inode from btrfs_iget_logging() Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 050/232] btrfs: return a btrfs_inode from read_one_inode() Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 051/232] btrfs: fix invalid inode pointer dereferences during log replay Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 052/232] btrfs: fix inode lookup error handling " Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 053/232] btrfs: record new subvolume in parent dir earlier to avoid dir logging races Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 054/232] btrfs: propagate last_unlink_trans earlier when doing a rmdir Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 055/232] btrfs: use btrfs_record_snapshot_destroy() during rmdir Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 056/232] ethernet: atl1: Add missing DMA mapping error checks and count errors Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 057/232] dpaa2-eth: fix xdp_rxq_info leak Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 058/232] drm/exynos: fimd: Guard display clock control with runtime PM calls Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 059/232] spi: spi-fsl-dspi: Clear completion counter before initiating transfer Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 060/232] drm/i915/selftests: Change mock_request() to return error pointers Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 061/232] nvme: Fix incorrect cdw15 value in passthru error logging Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 062/232] nvmet: fix memory leak of bio integrity Greg Kroah-Hartman
2025-07-08 16:20 ` [PATCH 6.12 063/232] platform/x86: dell-wmi-sysman: Fix WMI data block retrieval in sysfs callbacks Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 064/232] platform/x86: hp-bioscfg: Directly use firmware_attributes_class Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 065/232] platform/x86: hp-bioscfg: Fix class device unregistration Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 066/232] platform/x86: firmware_attributes_class: Move include linux/device/class.h Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 067/232] platform/x86: firmware_attributes_class: Simplify API Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 068/232] platform/x86: think-lmi: Directly use firmware_attributes_class Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 069/232] platform/x86: think-lmi: Fix class device unregistration Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 070/232] platform/x86: dell-sysman: Directly use firmware_attributes_class Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 071/232] platform/x86: dell-wmi-sysman: Fix class device unregistration Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 072/232] platform/mellanox: mlxreg-lc: Fix logic error in power state check Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 073/232] drm/bridge: aux-hpd-bridge: fix assignment of the of_node Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 074/232] smb: client: fix warning when reconnecting channel Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 075/232] net: usb: lan78xx: fix WARN in __netif_napi_del_locked on disconnect Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 076/232] drm/i915/gt: Fix timeline left held on VMA alloc error Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 077/232] drm/i915/gsc: mei interrupt top half should be in irq disabled context Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 078/232] idpf: return 0 size for RSS key if not supported Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 079/232] idpf: convert control queue mutex to a spinlock Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 080/232] igc: disable L1.2 PCI-E link substate to avoid performance issue Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 081/232] smb: client: set missing retry flag in smb2_writev_callback() Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 082/232] smb: client: set missing retry flag in cifs_readv_callback() Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 083/232] smb: client: set missing retry flag in cifs_writev_callback() Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 084/232] netfs: Fix i_size updating Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 085/232] lib: test_objagg: Set error message in check_expect_hints_stats() Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 086/232] amd-xgbe: align CL37 AN sequence as per databook Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 087/232] enic: fix incorrect MTU comparison in enic_change_mtu() Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 088/232] rose: fix dangling neighbour pointers in rose_rt_device_down() Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 089/232] nui: Fix dma_mapping_error() check Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 090/232] net/sched: Always pass notifications when child class becomes empty Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 091/232] amd-xgbe: do not double read link status Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 092/232] smb: client: fix race condition in negotiate timeout by using more precise timing Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 093/232] arm64: dts: rockchip: fix internal USB hub instability on RK3399 Puma Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 094/232] crypto: iaa - Remove dst_null support Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 095/232] crypto: iaa - Do not clobber req->base.data Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 096/232] spinlock: extend guard with spinlock_bh variants Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 097/232] crypto: zynqmp-sha - Add locking Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 098/232] kunit: qemu_configs: sparc: use Zilog console Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 099/232] kunit: qemu_configs: sparc: Explicitly enable CONFIG_SPARC32=y Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 100/232] kunit: qemu_configs: Disable faulting tests on 32-bit SPARC Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 101/232] gfs2: Initialize gl_no_formal_ino earlier Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 102/232] gfs2: Rename GIF_{DEFERRED -> DEFER}_DELETE Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 103/232] gfs2: Rename dinode_demise to evict_behavior Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 104/232] gfs2: Prevent inode creation race Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 105/232] gfs2: Decode missing glock flags in tracepoints Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 106/232] gfs2: Add GLF_PENDING_REPLY flag Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 107/232] gfs2: Replace GIF_DEFER_DELETE with GLF_DEFER_DELETE Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 108/232] gfs2: Move gfs2_dinode_dealloc Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 109/232] gfs2: Move GIF_ALLOC_FAILED check out of gfs2_ea_dealloc Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 110/232] gfs2: deallocate inodes in gfs2_create_inode Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 111/232] btrfs: prepare btrfs_page_mkwrite() for large folios Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 112/232] btrfs: fix wrong start offset for delalloc space release during mmap write Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 113/232] sched/fair: Rename h_nr_running into h_nr_queued Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 114/232] sched/fair: Add new cfs_rq.h_nr_runnable Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 115/232] sched/fair: Fixup wake_up_sync() vs DELAYED_DEQUEUE Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 116/232] gfs2: Move gfs2_trans_add_databufs Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 117/232] gfs2: Dont start unnecessary transactions during log flush Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 118/232] ASoC: tas2764: Extend driver to SN012776 Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 119/232] ASoC: tas2764: Reinit cache on part reset Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 120/232] ACPI: thermal: Fix stale comment regarding trip points Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 121/232] ACPI: thermal: Execute _SCP before reading " Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 122/232] bonding: Mark active offloaded xfrm_states Greg Kroah-Hartman
2025-07-08 16:21 ` [PATCH 6.12 123/232] wifi: ath12k: fix skb_ext_desc leak in ath12k_dp_tx() error path Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 124/232] wifi: ath12k: Handle error cases during extended skb allocation Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 125/232] wifi: ath12k: fix wrong handling of CCMP256 and GCMP ciphers Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 126/232] RDMA/rxe: Fix "trying to register non-static key in rxe_qp_do_cleanup" bug Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 127/232] iommu: ipmmu-vmsa: avoid Wformat-security warning Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 128/232] f2fs: decrease spare area for pinned files for zoned devices Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 129/232] f2fs: zone: introduce first_zoned_segno in f2fs_sb_info Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 130/232] f2fs: zone: fix to calculate first_zoned_segno correctly Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 131/232] scsi: lpfc: Remove NLP_RELEASE_RPI flag from nodelist structure Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 132/232] scsi: lpfc: Change lpfc_nodelist nlp_flag member into a bitmask Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 133/232] scsi: lpfc: Avoid potential ndlp use-after-free in dev_loss_tmo_callbk Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 134/232] hisi_acc_vfio_pci: bugfix cache write-back issue Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 135/232] hisi_acc_vfio_pci: bugfix the problem of uninstalling driver Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 136/232] bpf: use common instruction history across all states Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 137/232] bpf: Do not include stack ptr register in precision backtracking bookkeeping Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 138/232] arm64: dts: qcom: sm8650: change labels to lower-case Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 139/232] arm64: dts: qcom: sm8650: Fix domain-idle-state for CPU2 Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 140/232] arm64: dts: renesas: Use interrupts-extended for Ethernet PHYs Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 141/232] arm64: dts: renesas: Factor out White Hawk Single board support Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 142/232] arm64: dts: renesas: white-hawk-single: Improve Ethernet TSN description Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 143/232] arm64: dts: qcom: sm8650: add the missing l2 cache node Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 144/232] ubsan: integer-overflow: depend on BROKEN to keep this out of CI Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 145/232] remoteproc: k3: Call of_node_put(rmem_np) only once in three functions Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 146/232] remoteproc: k3-r5: Add devm action to release reserved memory Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 147/232] remoteproc: k3-r5: Use devm_kcalloc() helper Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 148/232] remoteproc: k3-r5: Use devm_ioremap_wc() helper Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 149/232] remoteproc: k3-r5: Use devm_rproc_add() helper Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 150/232] remoteproc: k3-r5: Refactor sequential core power up/down operations Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 151/232] netfs: Fix oops in write-retry from mis-resetting the subreq iterator Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 152/232] mfd: exynos-lpass: Fix another error handling path in exynos_lpass_probe() Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 153/232] drm/xe: Fix DSB buffer coherency Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 154/232] drm/xe: Move DSB l2 flush to a more sensible place Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 155/232] drm/xe: add interface to request physical alignment for buffer objects Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 156/232] drm/xe: Allow bo mapping on multiple ggtts Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 157/232] drm/xe: move DPT l2 flush to a more sensible place Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 158/232] drm/xe: Replace double space with single space after comma Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 159/232] drm/xe/guc: Dead CT helper Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 160/232] drm/xe/guc: Explicitly exit CT safe mode on unwind Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 161/232] selinux: change security_compute_sid to return the ssid or tsid on match Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 162/232] drm/simpledrm: Do not upcast in release helpers Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 163/232] drm/amdgpu: VCN v5_0_1 to prevent FW checking RB during DPG pause Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 164/232] drm/i915/dp_mst: Work around Thunderbolt sink disconnect after SINK_COUNT_ESI read Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 165/232] drm/amdgpu: add kicker fws loading for gfx11/smu13/psp13 Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 166/232] drm/amd/display: Add more checks for DSC / HUBP ONO guarantees Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 167/232] arm64: dts: qcom: x1e80100-crd: mark l12b and l15b always-on Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 168/232] drm/amdgpu/mes: add missing locking in helper functions Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 169/232] sched_ext: Make scx_group_set_weight() always update tg->scx.weight Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 170/232] scsi: lpfc: Restore clearing of NLP_UNREG_INP in ndlp->nlp_flag Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 171/232] drm/msm: Fix a fence leak in submit error path Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 172/232] drm/msm: Fix another leak in the " Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 173/232] ALSA: sb: Dont allow changing the DMA mode during operations Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 174/232] ALSA: sb: Force to disable DMAs once when DMA mode is changed Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 175/232] ata: libata-acpi: Do not assume 40 wire cable if no devices are enabled Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 176/232] ata: pata_cs5536: fix build on 32-bit UML Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 177/232] ASoC: amd: yc: Add quirk for MSI Bravo 17 D7VF internal mic Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 178/232] platform/x86/amd/pmc: Add PCSpecialist Lafite Pro V 14M to 8042 quirks list Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 179/232] genirq/irq_sim: Initialize work context pointers properly Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 180/232] powerpc: Fix struct termio related ioctl macros Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 181/232] ASoC: amd: yc: update quirk data for HP Victus Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 182/232] regulator: fan53555: add enable_time support and soft-start times Greg Kroah-Hartman
2025-07-08 16:22 ` [PATCH 6.12 183/232] scsi: target: Fix NULL pointer dereference in core_scsi3_decode_spec_i_port() Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 184/232] aoe: defer rexmit timer downdev work to workqueue Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 185/232] wifi: mac80211: drop invalid source address OCB frames Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 186/232] wifi: ath6kl: remove WARN on bad firmware input Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 187/232] ACPICA: Refuse to evaluate a method if arguments are missing Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 188/232] mtd: spinand: fix memory leak of ECC engine conf Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 189/232] rcu: Return early if callback is not specified Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 190/232] firmware: arm_ffa: Replace mutex with rwlock to avoid sleep in atomic context Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 191/232] add a string-to-qstr constructor Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 192/232] module: Provide EXPORT_SYMBOL_GPL_FOR_MODULES() helper Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 193/232] fs: export anon_inode_make_secure_inode() and fix secretmem LSM bypass Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 194/232] RDMA/mlx5: Fix cache entry update on dereg error Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 195/232] IB/mlx5: Fix potential deadlock in MR deregistration Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 196/232] drm/xe/bmg: Update Wa_22019338487 Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 197/232] drm/xe: Allow dropping kunit dependency as built-in Greg Kroah-Hartman
2025-07-08 16:23 ` Greg Kroah-Hartman [this message]
2025-07-08 16:23 ` [PATCH 6.12 199/232] usb: xhci: Skip xhci_reset in xhci_resume if xhci is being removed Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 200/232] Revert "usb: xhci: Implement xhci_handshake_check_state() helper" Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 201/232] usb: xhci: quirk for data loss in ISOC transfers Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 202/232] xhci: dbctty: disable ECHO flag by default Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 203/232] xhci: dbc: Flush queued requests before stopping dbc Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 204/232] xhci: Disable stream for xHC controller with XHCI_BROKEN_STREAMS Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 205/232] Input: xpad - support Acer NGR 200 Controller Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 206/232] Input: iqs7222 - explicitly define number of external channels Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 207/232] usb: cdnsp: do not disable slot for disabled slot Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 208/232] usb: cdnsp: Fix issue with CV Bad Descriptor test Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 209/232] usb: dwc3: Abort suspend on soft disconnect failure Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 210/232] usb: chipidea: udc: disconnect/reconnect from host when do suspend/resume Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 211/232] usb: acpi: fix device link removal Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 212/232] smb: client: fix readdir returning wrong type with POSIX extensions Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 213/232] cifs: all initializations for tcon should happen in tcon_info_alloc Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 214/232] dma-buf: fix timeout handling in dma_resv_wait_timeout v2 Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 215/232] i2c/designware: Fix an initialization issue Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 216/232] Logitech C-270 even more broken Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 217/232] optee: ffa: fix sleep in atomic context Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 218/232] iommu/rockchip: prevent iommus dead loop when two masters share one IOMMU Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 219/232] powercap: intel_rapl: Do not change CLAMPING bit if ENABLE bit cannot be changed Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 220/232] riscv: cpu_ops_sbi: Use static array for boot_data Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 221/232] platform/x86: think-lmi: Create ksets consecutively Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 222/232] platform/x86: think-lmi: Fix kobject cleanup Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 223/232] platform/x86: think-lmi: Fix sysfs group cleanup Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 224/232] usb: typec: displayport: Fix potential deadlock Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 225/232] powerpc/kernel: Fix ppc_save_regs inclusion in build Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 226/232] mm/vmalloc: fix data race in show_numa_info() Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 227/232] mm: userfaultfd: fix race of userfaultfd_move and swap cache Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 228/232] x86/bugs: Rename MDS machinery to something more generic Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 229/232] x86/bugs: Add a Transient Scheduler Attacks mitigation Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 230/232] KVM: SVM: Advertise TSA CPUID bits to guests Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 231/232] x86/microcode/AMD: Add TSA microcode SHAs Greg Kroah-Hartman
2025-07-08 16:23 ` [PATCH 6.12 232/232] x86/process: Move the buffer clearing before MONITOR Greg Kroah-Hartman
2025-07-09 6:42 ` [PATCH 6.12 000/232] 6.12.37-rc1 review Pavel Machek
2025-07-09 8:47 ` Mark Brown
2025-07-09 9:26 ` Harshit Mogalapalli
2025-07-09 9:43 ` Ron Economos
2025-07-09 13:40 ` Jon Hunter
2025-07-09 15:16 ` Miguel Ojeda
2025-07-09 16:53 ` Naresh Kamboju
2025-07-09 22:00 ` 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=20250708162246.618230659@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=anna.schumaker@oracle.com \
--cc=patches@lists.linux.dev \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
--cc=tigran.mkrtchyan@desy.de \
--cc=trond.myklebust@hammerspace.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox