From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Kirill Smelkov <kirr@nexedi.com>,
Miklos Szeredi <mszeredi@redhat.com>
Subject: [PATCH 5.1 110/122] fuse: Add FOPEN_STREAM to use stream_open()
Date: Thu, 23 May 2019 21:07:12 +0200 [thread overview]
Message-ID: <20190523181720.013770818@linuxfoundation.org> (raw)
In-Reply-To: <20190523181705.091418060@linuxfoundation.org>
From: Kirill Smelkov <kirr@nexedi.com>
commit bbd84f33652f852ce5992d65db4d020aba21f882 upstream.
Starting from commit 9c225f2655e3 ("vfs: atomic f_pos accesses as per
POSIX") files opened even via nonseekable_open gate read and write via lock
and do not allow them to be run simultaneously. This can create read vs
write deadlock if a filesystem is trying to implement a socket-like file
which is intended to be simultaneously used for both read and write from
filesystem client. See commit 10dce8af3422 ("fs: stream_open - opener for
stream-like files so that read and write can run simultaneously without
deadlock") for details and e.g. commit 581d21a2d02a ("xenbus: fix deadlock
on writes to /proc/xen/xenbus") for a similar deadlock example on
/proc/xen/xenbus.
To avoid such deadlock it was tempting to adjust fuse_finish_open to use
stream_open instead of nonseekable_open on just FOPEN_NONSEEKABLE flags,
but grepping through Debian codesearch shows users of FOPEN_NONSEEKABLE,
and in particular GVFS which actually uses offset in its read and write
handlers
https://codesearch.debian.net/search?q=-%3Enonseekable+%3D
https://gitlab.gnome.org/GNOME/gvfs/blob/1.40.0-6-gcbc54396/client/gvfsfusedaemon.c#L1080
https://gitlab.gnome.org/GNOME/gvfs/blob/1.40.0-6-gcbc54396/client/gvfsfusedaemon.c#L1247-1346
https://gitlab.gnome.org/GNOME/gvfs/blob/1.40.0-6-gcbc54396/client/gvfsfusedaemon.c#L1399-1481
so if we would do such a change it will break a real user.
Add another flag (FOPEN_STREAM) for filesystem servers to indicate that the
opened handler is having stream-like semantics; does not use file position
and thus the kernel is free to issue simultaneous read and write request on
opened file handle.
This patch together with stream_open() should be added to stable kernels
starting from v3.14+. This will allow to patch OSSPD and other FUSE
filesystems that provide stream-like files to return FOPEN_STREAM |
FOPEN_NONSEEKABLE in open handler and this way avoid the deadlock on all
kernel versions. This should work because fuse_finish_open ignores unknown
open flags returned from a filesystem and so passing FOPEN_STREAM to a
kernel that is not aware of this flag cannot hurt. In turn the kernel that
is not aware of FOPEN_STREAM will be < v3.14 where just FOPEN_NONSEEKABLE
is sufficient to implement streams without read vs write deadlock.
Cc: stable@vger.kernel.org # v3.14+
Signed-off-by: Kirill Smelkov <kirr@nexedi.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/fuse/file.c | 4 +++-
include/uapi/linux/fuse.h | 2 ++
2 files changed, 5 insertions(+), 1 deletion(-)
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -178,7 +178,9 @@ void fuse_finish_open(struct inode *inod
if (!(ff->open_flags & FOPEN_KEEP_CACHE))
invalidate_inode_pages2(inode->i_mapping);
- if (ff->open_flags & FOPEN_NONSEEKABLE)
+ if (ff->open_flags & FOPEN_STREAM)
+ stream_open(inode, file);
+ else if (ff->open_flags & FOPEN_NONSEEKABLE)
nonseekable_open(inode, file);
if (fc->atomic_o_trunc && (file->f_flags & O_TRUNC)) {
struct fuse_inode *fi = get_fuse_inode(inode);
--- a/include/uapi/linux/fuse.h
+++ b/include/uapi/linux/fuse.h
@@ -229,11 +229,13 @@ struct fuse_file_lock {
* FOPEN_KEEP_CACHE: don't invalidate the data cache on open
* FOPEN_NONSEEKABLE: the file is not seekable
* FOPEN_CACHE_DIR: allow caching this directory
+ * FOPEN_STREAM: the file is stream-like (no file position at all)
*/
#define FOPEN_DIRECT_IO (1 << 0)
#define FOPEN_KEEP_CACHE (1 << 1)
#define FOPEN_NONSEEKABLE (1 << 2)
#define FOPEN_CACHE_DIR (1 << 3)
+#define FOPEN_STREAM (1 << 4)
/**
* INIT request/reply flags
next prev parent reply other threads:[~2019-05-23 19:32 UTC|newest]
Thread overview: 132+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-23 19:05 [PATCH 5.1 000/122] 5.1.5-stable review Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 001/122] ipv6: fix src addr routing with the exception table Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 002/122] ipv6: prevent possible fib6 leaks Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 003/122] net: Always descend into dsa/ Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 004/122] net: avoid weird emergency message Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 005/122] net/mlx4_core: Change the error print to info print Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 006/122] net: test nouarg before dereferencing zerocopy pointers Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 007/122] net: usb: qmi_wwan: add Telit 0x1260 and 0x1261 compositions Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 008/122] nfp: flower: add rcu locks when accessing netdev for tunnels Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 009/122] ppp: deflate: Fix possible crash in deflate_init Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 010/122] rtnetlink: always put IFLA_LINK for links with a link-netnsid Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 011/122] tipc: switch order of device registration to fix a crash Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 012/122] vsock/virtio: free packets during the socket release Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 013/122] tipc: fix modprobe tipc failed after switch order of device registration Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 014/122] mlxsw: core: Prevent QSFP module initialization for old hardware Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 015/122] mlxsw: core: Prevent reading unsupported slave address from SFP EEPROM Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 016/122] flow_offload: support CVLAN match Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 017/122] net/mlx5e: Fix calling wrong function to get inner vlan key and mask Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 018/122] net/mlx5: Fix peer pf disable hca command Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 019/122] vsock/virtio: Initialize core virtio vsock before registering the driver Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 020/122] net/mlx5e: Add missing ethtool driver info for representors Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 021/122] net/mlx5e: Additional check for flow destination comparison Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 022/122] net/mlx5: Imply MLXFW in mlx5_core Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 023/122] net/mlx5e: Fix ethtool rxfh commands when CONFIG_MLX5_EN_RXNFC is disabled Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 024/122] blk-mq: free hw queues resource in hctxs release handler Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 025/122] regulator: core: fix error path for regulator_set_voltage_unlocked Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 026/122] parisc: Export running_on_qemu symbol for modules Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 027/122] parisc: Add memory clobber to TLB purges Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 028/122] parisc: Skip registering LED when running in QEMU Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 029/122] parisc: Add memory barrier to asm pdc and sync instructions Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 030/122] parisc: Allow live-patching of __meminit functions Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 031/122] parisc: Use PA_ASM_LEVEL in boot code Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 032/122] parisc: Rename LEVEL to PA_ASM_LEVEL to avoid name clash with DRBD code Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 033/122] stm class: Fix channel free in stm output free path Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 034/122] stm class: Fix channel bitmap on 32-bit systems Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 035/122] brd: re-enable __GFP_HIGHMEM in brd_insert_page() Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 036/122] proc: prevent changes to overridden credentials Greg Kroah-Hartman
2019-05-23 19:05 ` [PATCH 5.1 037/122] Revert "MD: fix lock contention for flush bios" Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 038/122] md: batch flush requests Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 039/122] md: add mddev->pers to avoid potential NULL pointer dereference Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 040/122] md: add a missing endianness conversion in check_sb_changes Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 041/122] dcache: sort the freeing-without-RCU-delay mess for good Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 042/122] intel_th: msu: Fix single mode with IOMMU Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 043/122] p54: drop device reference count if fails to enable device Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 044/122] of: fix clang -Wunsequenced for be32_to_cpu() Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 045/122] brcmfmac: Add DMI nvram filename quirk for ACEPC T8 and T11 mini PCs Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 046/122] cifs: fix credits leak for SMB1 oplock breaks Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 047/122] cifs: fix strcat buffer overflow and reduce raciness in smb21_set_oplock_level() Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 048/122] phy: ti-pipe3: fix missing bit-wise or operator when assigning val Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 049/122] media: ov6650: Fix sensor possibly not detected on probe Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 050/122] media: seco-cec: fix building with RC_CORE=m Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 051/122] media: imx: csi: Allow unknown nearest upstream entities Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 052/122] media: imx: Clear fwnode link struct for each endpoint iteration Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 053/122] media: imx: Rename functions that add IPU-internal subdevs Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 054/122] media: imx: Dont register IPU subdevs/links if CSI port missing Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 055/122] RDMA/mlx5: Use get_zeroed_page() for clock_info Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 056/122] RDMA/ipoib: Allow user space differentiate between valid dev_port Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 057/122] NFS4: Fix v4.0 client state corruption when mount Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 058/122] PNFS fallback to MDS if no deviceid found Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 059/122] clk: hi3660: Mark clk_gate_ufs_subsys as critical Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 060/122] clk: tegra: Fix PLLM programming on Tegra124+ when PMC overrides divider Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 061/122] clk: mediatek: Disable tuner_en before change PLL rate Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 062/122] clk: rockchip: fix wrong clock definitions for rk3328 Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 063/122] udlfb: delete the unused parameter for dlfb_handle_damage Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 064/122] udlfb: fix sleeping inside spinlock Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 065/122] udlfb: introduce a rendering mutex Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 066/122] fuse: fix writepages on 32bit Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 067/122] fuse: honor RLIMIT_FSIZE in fuse_file_fallocate Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 068/122] ovl: fix missing upper fs freeze protection on copy up for ioctl Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 069/122] fsnotify: fix unlink performance regression Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 070/122] gcc-plugins: arm_ssp_per_task_plugin: Fix for older GCC < 6 Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 071/122] iommu/tegra-smmu: Fix invalid ASID bits on Tegra30/114 Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 072/122] ceph: flush dirty inodes before proceeding with remount Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 073/122] x86_64: Add gap to int3 to allow for call emulation Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 074/122] x86_64: Allow breakpoints to emulate call instructions Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 075/122] ftrace/x86_64: Emulate call function while updating in breakpoint handler Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 076/122] tracing: Fix partial reading of trace events id file Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 077/122] tracing: probeevent: Fix to make the type of $comm string Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 078/122] memory: tegra: Fix integer overflow on tick value calculation Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 079/122] perf intel-pt: Fix instructions sampling rate Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 080/122] perf intel-pt: Fix improved sample timestamp Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 081/122] perf intel-pt: Fix sample timestamp wrt non-taken branches Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 082/122] MIPS: perf: Fix build with CONFIG_CPU_BMIPS5000 enabled Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 083/122] objtool: Allow AR to be overridden with HOSTAR Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 084/122] x86/mpx, mm/core: Fix recursive munmap() corruption Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 085/122] fbdev/efifb: Ignore framebuffer memmap entries that lack any memory types Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 086/122] fbdev: sm712fb: fix brightness control on reboot, dont set SR30 Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 087/122] fbdev: sm712fb: fix VRAM detection, dont set SR70/71/74/75 Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 088/122] fbdev: sm712fb: fix white screen of death on reboot, dont set CR3B-CR3F Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 089/122] fbdev: sm712fb: fix boot screen glitch when sm712fb replaces VGA Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 090/122] fbdev: sm712fb: fix crashes during framebuffer writes by correctly mapping VRAM Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 091/122] fbdev: sm712fb: fix support for 1024x768-16 mode Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 092/122] fbdev: sm712fb: use 1024x768 by default on non-MIPS, fix garbled display Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 093/122] fbdev: sm712fb: fix crashes and garbled display during DPMS modesetting Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 094/122] PCI: Mark AMD Stoney Radeon R7 GPU ATS as broken Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 095/122] PCI: Mark Atheros AR9462 to avoid bus reset Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 096/122] PCI: Reset Lenovo ThinkPad P50 nvgpu at boot if necessary Greg Kroah-Hartman
2019-05-23 19:06 ` [PATCH 5.1 097/122] PCI: Init PCIe feature bits for managed host bridge alloc Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 098/122] PCI/AER: Change pci_aer_init() stub to return void Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 099/122] PCI: rcar: Add the initialization of PCIe link in resume_noirq() Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 100/122] PCI: Factor out pcie_retrain_link() function Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 101/122] PCI: Work around Pericom PCIe-to-PCI bridge Retrain Link erratum Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 102/122] dm cache metadata: Fix loading discard bitset Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 103/122] dm zoned: Fix zone report handling Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 104/122] dm init: fix max devices/targets checks Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 105/122] dm delay: fix a crash when invalid device is specified Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 106/122] dm crypt: move detailed message into debug level Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 107/122] dm integrity: correctly calculate the size of metadata area Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 108/122] dm ioctl: fix hang in early create error condition Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 109/122] dm mpath: always free attached_handler_name in parse_path() Greg Kroah-Hartman
2019-05-23 19:07 ` Greg Kroah-Hartman [this message]
2019-05-23 19:07 ` [PATCH 5.1 111/122] dm: make sure to obey max_io_len_target_boundary Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 112/122] Revert "Dont jump to compute_result state from check_result state" Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 113/122] md/raid: raid5 preserve the writeback action after the parity check Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 114/122] dmaengine: imx-sdma: Only check ratio on parts that support 1:1 Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 115/122] driver core: Postpone DMA tear-down until after devres release for probe failure Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 116/122] bpf: relax inode permission check for retrieving bpf program Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 117/122] bpf: add map_lookup_elem_sys_only for lookups from syscall side Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 118/122] bpf, lru: avoid messing with eviction heuristics upon syscall lookup Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 119/122] y2038: Make CONFIG_64BIT_TIME unconditional Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 120/122] btrfs: reloc: Fix NULL pointer dereference due to expanded reloc_root lifespan Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 121/122] ARM: dts: imx6q-logicpd: Reduce inrush current on USBH1 Greg Kroah-Hartman
2019-05-23 19:07 ` [PATCH 5.1 122/122] ARM: dts: imx6q-logicpd: Reduce inrush current on start Greg Kroah-Hartman
2019-05-23 23:08 ` [PATCH 5.1 000/122] 5.1.5-stable review kernelci.org bot
2019-05-24 19:48 ` Kevin Hilman
2019-05-25 16:07 ` Greg Kroah-Hartman
2019-05-24 8:53 ` Naresh Kamboju
2019-05-24 15:01 ` Greg Kroah-Hartman
2019-05-24 11:05 ` Jon Hunter
2019-05-24 15:01 ` Greg Kroah-Hartman
2019-05-24 18:55 ` shuah
2019-05-24 19:07 ` Greg Kroah-Hartman
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=20190523181720.013770818@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=kirr@nexedi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mszeredi@redhat.com \
--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).