LKML Archive on lore.kernel.org
 help / color / 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,
	Kai-Heng Feng <kai.heng.feng@canonical.com>,
	Jan Kara <jack@suse.cz>, Jens Axboe <axboe@kernel.dk>
Subject: [PATCH 5.2 105/131] loop: Fix mount(2) failure due to race with LOOP_SET_FD
Date: Mon,  5 Aug 2019 15:03:12 +0200
Message-ID: <20190805124959.005408571@linuxfoundation.org> (raw)
In-Reply-To: <20190805124951.453337465@linuxfoundation.org>

From: Jan Kara <jack@suse.cz>

commit 89e524c04fa966330e2e80ab2bc50b9944c5847a upstream.

Commit 33ec3e53e7b1 ("loop: Don't change loop device under exclusive
opener") made LOOP_SET_FD ioctl acquire exclusive block device reference
while it updates loop device binding. However this can make perfectly
valid mount(2) fail with EBUSY due to racing LOOP_SET_FD holding
temporarily the exclusive bdev reference in cases like this:

for i in {a..z}{a..z}; do
        dd if=/dev/zero of=$i.image bs=1k count=0 seek=1024
        mkfs.ext2 $i.image
        mkdir mnt$i
done

echo "Run"
for i in {a..z}{a..z}; do
        mount -o loop -t ext2 $i.image mnt$i &
done

Fix the problem by not getting full exclusive bdev reference in
LOOP_SET_FD but instead just mark the bdev as being claimed while we
update the binding information. This just blocks new exclusive openers
instead of failing them with EBUSY thus fixing the problem.

Fixes: 33ec3e53e7b1 ("loop: Don't change loop device under exclusive opener")
Cc: stable@vger.kernel.org
Tested-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/block/loop.c |   16 +++++----
 fs/block_dev.c       |   83 +++++++++++++++++++++++++++++++++++----------------
 include/linux/fs.h   |    6 +++
 3 files changed, 73 insertions(+), 32 deletions(-)

--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -932,6 +932,7 @@ static int loop_set_fd(struct loop_devic
 	struct file	*file;
 	struct inode	*inode;
 	struct address_space *mapping;
+	struct block_device *claimed_bdev = NULL;
 	int		lo_flags = 0;
 	int		error;
 	loff_t		size;
@@ -950,10 +951,11 @@ static int loop_set_fd(struct loop_devic
 	 * here to avoid changing device under exclusive owner.
 	 */
 	if (!(mode & FMODE_EXCL)) {
-		bdgrab(bdev);
-		error = blkdev_get(bdev, mode | FMODE_EXCL, loop_set_fd);
-		if (error)
+		claimed_bdev = bd_start_claiming(bdev, loop_set_fd);
+		if (IS_ERR(claimed_bdev)) {
+			error = PTR_ERR(claimed_bdev);
 			goto out_putf;
+		}
 	}
 
 	error = mutex_lock_killable(&loop_ctl_mutex);
@@ -1023,15 +1025,15 @@ static int loop_set_fd(struct loop_devic
 	mutex_unlock(&loop_ctl_mutex);
 	if (partscan)
 		loop_reread_partitions(lo, bdev);
-	if (!(mode & FMODE_EXCL))
-		blkdev_put(bdev, mode | FMODE_EXCL);
+	if (claimed_bdev)
+		bd_abort_claiming(bdev, claimed_bdev, loop_set_fd);
 	return 0;
 
 out_unlock:
 	mutex_unlock(&loop_ctl_mutex);
 out_bdev:
-	if (!(mode & FMODE_EXCL))
-		blkdev_put(bdev, mode | FMODE_EXCL);
+	if (claimed_bdev)
+		bd_abort_claiming(bdev, claimed_bdev, loop_set_fd);
 out_putf:
 	fput(file);
 out:
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -1151,8 +1151,7 @@ static struct gendisk *bdev_get_gendisk(
  * Pointer to the block device containing @bdev on success, ERR_PTR()
  * value on failure.
  */
-static struct block_device *bd_start_claiming(struct block_device *bdev,
-					      void *holder)
+struct block_device *bd_start_claiming(struct block_device *bdev, void *holder)
 {
 	struct gendisk *disk;
 	struct block_device *whole;
@@ -1199,6 +1198,62 @@ static struct block_device *bd_start_cla
 		return ERR_PTR(err);
 	}
 }
+EXPORT_SYMBOL(bd_start_claiming);
+
+static void bd_clear_claiming(struct block_device *whole, void *holder)
+{
+	lockdep_assert_held(&bdev_lock);
+	/* tell others that we're done */
+	BUG_ON(whole->bd_claiming != holder);
+	whole->bd_claiming = NULL;
+	wake_up_bit(&whole->bd_claiming, 0);
+}
+
+/**
+ * bd_finish_claiming - finish claiming of a block device
+ * @bdev: block device of interest
+ * @whole: whole block device (returned from bd_start_claiming())
+ * @holder: holder that has claimed @bdev
+ *
+ * Finish exclusive open of a block device. Mark the device as exlusively
+ * open by the holder and wake up all waiters for exclusive open to finish.
+ */
+void bd_finish_claiming(struct block_device *bdev, struct block_device *whole,
+			void *holder)
+{
+	spin_lock(&bdev_lock);
+	BUG_ON(!bd_may_claim(bdev, whole, holder));
+	/*
+	 * Note that for a whole device bd_holders will be incremented twice,
+	 * and bd_holder will be set to bd_may_claim before being set to holder
+	 */
+	whole->bd_holders++;
+	whole->bd_holder = bd_may_claim;
+	bdev->bd_holders++;
+	bdev->bd_holder = holder;
+	bd_clear_claiming(whole, holder);
+	spin_unlock(&bdev_lock);
+}
+EXPORT_SYMBOL(bd_finish_claiming);
+
+/**
+ * bd_abort_claiming - abort claiming of a block device
+ * @bdev: block device of interest
+ * @whole: whole block device (returned from bd_start_claiming())
+ * @holder: holder that has claimed @bdev
+ *
+ * Abort claiming of a block device when the exclusive open failed. This can be
+ * also used when exclusive open is not actually desired and we just needed
+ * to block other exclusive openers for a while.
+ */
+void bd_abort_claiming(struct block_device *bdev, struct block_device *whole,
+		       void *holder)
+{
+	spin_lock(&bdev_lock);
+	bd_clear_claiming(whole, holder);
+	spin_unlock(&bdev_lock);
+}
+EXPORT_SYMBOL(bd_abort_claiming);
 
 #ifdef CONFIG_SYSFS
 struct bd_holder_disk {
@@ -1668,29 +1723,7 @@ int blkdev_get(struct block_device *bdev
 
 		/* finish claiming */
 		mutex_lock(&bdev->bd_mutex);
-		spin_lock(&bdev_lock);
-
-		if (!res) {
-			BUG_ON(!bd_may_claim(bdev, whole, holder));
-			/*
-			 * Note that for a whole device bd_holders
-			 * will be incremented twice, and bd_holder
-			 * will be set to bd_may_claim before being
-			 * set to holder
-			 */
-			whole->bd_holders++;
-			whole->bd_holder = bd_may_claim;
-			bdev->bd_holders++;
-			bdev->bd_holder = holder;
-		}
-
-		/* tell others that we're done */
-		BUG_ON(whole->bd_claiming != holder);
-		whole->bd_claiming = NULL;
-		wake_up_bit(&whole->bd_claiming, 0);
-
-		spin_unlock(&bdev_lock);
-
+		bd_finish_claiming(bdev, whole, holder);
 		/*
 		 * Block event polling for write claims if requested.  Any
 		 * write holder makes the write_holder state stick until
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2615,6 +2615,12 @@ extern struct block_device *blkdev_get_b
 					       void *holder);
 extern struct block_device *blkdev_get_by_dev(dev_t dev, fmode_t mode,
 					      void *holder);
+extern struct block_device *bd_start_claiming(struct block_device *bdev,
+					      void *holder);
+extern void bd_finish_claiming(struct block_device *bdev,
+			       struct block_device *whole, void *holder);
+extern void bd_abort_claiming(struct block_device *bdev,
+			      struct block_device *whole, void *holder);
 extern void blkdev_put(struct block_device *bdev, fmode_t mode);
 extern int __blkdev_reread_part(struct block_device *bdev);
 extern int blkdev_reread_part(struct block_device *bdev);



  parent reply index

Thread overview: 145+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-05 13:01 [PATCH 5.2 000/131] 5.2.7-stable review Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 001/131] ARM: riscpc: fix DMA Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 002/131] ARM: dts: rockchip: Make rk3288-veyron-minnie run at hs200 Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 003/131] ARM: dts: rockchip: Make rk3288-veyron-mickeys emmc work again Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 004/131] clk: meson: mpll: properly handle spread spectrum Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 005/131] ARM: dts: rockchip: Mark that the rk3288 timer might stop in suspend Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 006/131] ftrace: Enable trampoline when rec count returns back to one Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 007/131] arm64: dts: qcom: qcs404-evb: fix l3 min voltage Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 008/131] soc: qcom: rpmpd: fixup rpmpd set performance state Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 009/131] arm64: dts: marvell: mcbin: enlarge PCI memory window Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 010/131] soc: imx: soc-imx8: Correct return value of error handle Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 011/131] dmaengine: tegra-apb: Error out if DMA_PREP_INTERRUPT flag is unset Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 012/131] arm64: dts: rockchip: fix isp iommu clocks and power domain Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 013/131] kernel/module.c: Only return -EEXIST for modules that have finished loading Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 014/131] PCI: OF: Initialize dev->fwnode appropriately Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 015/131] firmware/psci: psci_checker: Park kthreads before stopping them Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 016/131] soc: imx8: Fix potential kernel dump in error path Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 017/131] arm64: qcom: qcs404: Add reset-cells to GCC node Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 018/131] swiotlb: fix phys_addr_t overflow warning Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 019/131] MIPS: lantiq: Fix bitfield masking Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 020/131] dmaengine: rcar-dmac: Reject zero-length slave DMA requests Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 021/131] ARM: exynos: Only build MCPM support if used Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 022/131] clk: tegra210: fix PLLU and PLLU_OUT1 Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 023/131] fs/adfs: super: fix use-after-free bug Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 024/131] clk: sprd: Add check for return value of sprd_clk_regmap_init() Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 025/131] arm64: dts: rockchip: Fix USB3 Type-C on rk3399-sapphire Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 026/131] btrfs: tree-checker: Check if the file extent end overflows Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 027/131] btrfs: fix minimum number of chunk errors for DUP Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 028/131] btrfs: Flush before reflinking any extent to prevent NOCOW write falling back to COW without data reservation Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 029/131] remoteproc: copy parent dma_pfn_offset for vdev Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 030/131] btrfs: qgroup: Dont hold qgroup_ioctl_lock in btrfs_qgroup_inherit() Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 031/131] cifs: Fix a race condition with cifs_echo_request Greg Kroah-Hartman
2019-08-05 13:01 ` [PATCH 5.2 032/131] ceph: fix improper use of smp_mb__before_atomic() Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 033/131] ceph: fix dir_lease_is_valid() Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 034/131] ceph: return -ERANGE if virtual xattr value didnt fit in buffer Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 035/131] virtio-mmio: add error check for platform_get_irq Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 036/131] ACPI: blacklist: fix clang warning for unused DMI table Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 037/131] scsi: zfcp: fix GCC compiler warning emitted with -Wmaybe-uninitialized Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 038/131] selftests/bpf: do not ignore clang failures Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 039/131] drm/amd/display: Expose audio inst from DC to DM Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 040/131] cifs: fix crash in cifs_dfs_do_automount Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 041/131] perf version: Fix segfault due to missing OPT_END() Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 042/131] x86: kvm: avoid constant-conversion warning Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 043/131] ACPI: fix false-positive -Wuninitialized warning Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 044/131] KVM: nVMX: Ignore segment base for VMX memory operand when segment not FS or GS Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 045/131] bpf: fix BTF verifier size resolution logic Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 046/131] be2net: Signal that the device cannot transmit during reconfiguration Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 047/131] mm/z3fold: dont try to use buddy slots after free Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 048/131] mm/slab_common.c: work around clang bug #42570 Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 049/131] mm/memcontrol.c: keep local VM counters in sync with the hierarchical ones Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 050/131] mm/z3fold.c: reinitialize zhdr structs after migration Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 051/131] x86/apic: Silence -Wtype-limits compiler warnings Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 052/131] x86: math-emu: Hide clang warnings for 16-bit overflow Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 053/131] mm/cma.c: fail if fixed declaration cant be honored Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 054/131] lib/test_overflow.c: avoid tainting the kernel and fix wrap size Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 055/131] lib/test_string.c: avoid masking memset16/32/64 failures Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 056/131] mm/ioremap: check virtual address alignment while creating huge mappings Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 057/131] coda: add error handling for fget Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 058/131] coda: fix build using bare-metal toolchain Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 059/131] uapi linux/coda_psdev.h: move upc_req definition from uapi to kernel side headers Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 060/131] drivers/rapidio/devices/rio_mport_cdev.c: NUL terminate some strings Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 061/131] ipc/mqueue.c: only perform resource calculation if user valid Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 062/131] nds32: fix asm/syscall.h Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 063/131] device-dax: fix memory and resource leak if hotplug fails Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 064/131] mm/hotplug: make remove_memory() interface usable Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 065/131] stacktrace: Force USER_DS for stack_trace_save_user() Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 066/131] crypto: ccp - Fix SEV_VERSION_GREATER_OR_EQUAL Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 067/131] xen/pv: Fix a boot up hang revealed by int3 self test Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 068/131] x86/kvm: Dont call kvm_spurious_fault() from .fixup Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 069/131] x86/paravirt: Fix callee-saved function ELF sizes Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 070/131] x86, boot: Remove multiple copy of static function sanitize_boot_params() Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 071/131] bpf: Disable GCC -fgcse optimization for ___bpf_prog_run() Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 072/131] drm/nouveau: fix memory leak in nouveau_conn_reset() Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 073/131] dma-direct: correct the physical addr in dma_direct_sync_sg_for_cpu/device Greg Kroah-Hartman
2019-08-06 12:41   ` Sasha Levin
2019-08-06 12:57     ` Robin Murphy
2019-08-06 22:04       ` Sasha Levin
2019-08-07  5:44         ` Christoph Hellwig
2019-08-05 13:02 ` [PATCH 5.2 074/131] drm/nouveau/dmem: missing mutex_lock in error path Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 075/131] kconfig: Clear "written" flag to avoid data loss Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 076/131] kbuild: initialize CLANG_FLAGS correctly in the top Makefile Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 077/131] kbuild: modpost: include .*.cmd files only when targets exist Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 078/131] tpm: Fix null pointer dereference on chip register error path Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 079/131] Btrfs: fix incremental send failure after deduplication Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 080/131] Btrfs: fix race leading to fs corruption after transaction abort Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 081/131] dax: Fix missed wakeup in put_unlocked_entry() Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 082/131] fgraph: Remove redundant ftrace_graph_notrace_addr() test Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 083/131] mmc: dw_mmc: Fix occasional hang after tuning on eMMC Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 084/131] mmc: meson-mx-sdio: Fix misuse of GENMASK macro Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 085/131] mmc: host: sdhci-sprd: Fix the missing pm_runtime_put_noidle() Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 086/131] mmc: mmc_spi: Enable stable writes Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 087/131] gpiolib: Preserve desc->flags when setting state Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 088/131] gpio: dont WARN() on NULL descs if gpiolib is disabled Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 089/131] gpiolib: fix incorrect IRQ requesting of an active-low lineevent Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 090/131] IB/hfi1: Fix Spectre v1 vulnerability Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 091/131] drm/nouveau: Only release VCPI slots on mode changes Greg Kroah-Hartman
2019-08-05 13:02 ` [PATCH 5.2 092/131] mtd: rawnand: micron: handle on-die "ECC-off" devices correctly Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 093/131] eeprom: at24: make spd world-readable again Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 094/131] i2c: iproc: Fix i2c master read more than 63 bytes Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 095/131] i2c: at91: disable TXRDY interrupt after sending data Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 096/131] i2c: at91: fix clk_offset for sama5d2 Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 097/131] powerpc/kasan: fix early boot failure on PPC32 Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 098/131] selinux: fix memory leak in policydb_init() Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 099/131] ALSA: hda: Fix 1-minute detection delay when i915 module is not available Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 100/131] mm: vmscan: check if mem cgroup is disabled or not before calling memcg slab shrinker Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 101/131] mm: migrate: fix reference check race between __find_get_block() and migration Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 102/131] mm: compaction: avoid 100% CPU usage during compaction when a task is killed Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 103/131] ubsan: build ubsan.c more conservatively Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 104/131] mm/migrate.c: initialize pud_entry in migrate_vma() Greg Kroah-Hartman
2019-08-05 13:03 ` Greg Kroah-Hartman [this message]
2019-08-05 13:03 ` [PATCH 5.2 106/131] s390/dasd: fix endless loop after read unit address configuration Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 107/131] cgroup: kselftest: relax fs_spec checks Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 108/131] parisc: Add archclean Makefile target Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 109/131] parisc: Strip debug info from kernel before creating compressed vmlinuz Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 110/131] parisc: Fix build of compressed kernel even with debug enabled Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 111/131] drivers/perf: arm_pmu: Fix failure path in PM notifier Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 112/131] arm64: compat: Allow single-byte watchpoints on all addresses Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 113/131] arm64: cpufeature: Fix feature comparison for CTR_EL0.{CWG,ERG} Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 114/131] io_uring: fix KASAN use after free in io_sq_wq_submit_work Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 115/131] clk: mediatek: mt8183: Register 13MHz clock earlier for clocksource Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 116/131] scsi: mpt3sas: Use 63-bit DMA addressing on SAS35 HBA Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 117/131] nbd: replace kill_bdev() with __invalidate_device() again Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 118/131] xen/swiotlb: fix condition for calling xen_destroy_contiguous_region() Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 119/131] xen/gntdev.c: Replace vm_map_pages() with vm_map_pages_zero() Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 120/131] RDMA/bnxt_re: Honor vlan_id in GID entry comparison Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 121/131] RDMA/devices: Do not deadlock during client removal Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 122/131] IB/mlx5: Fix unreg_umr to ignore the mkey state Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 123/131] IB/mlx5: Use direct mkey destroy command upon UMR unreg failure Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 124/131] IB/mlx5: Move MRs to a kernel PD when freeing them to the MR cache Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 125/131] IB/mlx5: Fix clean_mr() to work in the expected order Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 126/131] IB/mlx5: Fix RSS Toeplitz setup to be aligned with the HW specification Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 127/131] IB/hfi1: Check for error on call to alloc_rsm_map_table Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 128/131] IB/hfi1: Drop all TID RDMA READ RESP packets after r_next_psn Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 129/131] IB/hfi1: Field not zero-ed when allocating TID flow memory Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 130/131] drm/i915/perf: fix ICL perf register offsets Greg Kroah-Hartman
2019-08-05 13:03 ` [PATCH 5.2 131/131] drm/i915/gvt: fix incorrect cache entry for guest page mapping Greg Kroah-Hartman
2019-08-05 18:35 ` [PATCH 5.2 000/131] 5.2.7-stable review kernelci.org bot
2019-08-06  0:51 ` shuah
2019-08-06  5:34   ` Greg Kroah-Hartman
2019-08-06  6:17 ` Naresh Kamboju
2019-08-06 10:55   ` Greg Kroah-Hartman
2019-08-06 15:50 ` Guenter Roeck
2019-08-06 16:01   ` Greg Kroah-Hartman
2019-08-06 18:30 ` Jon Hunter
2019-08-06 18:44   ` Greg Kroah-Hartman

Reply instructions:

You may reply publically 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=20190805124959.005408571@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=axboe@kernel.dk \
    --cc=jack@suse.cz \
    --cc=kai.heng.feng@canonical.com \
    --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

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git
	git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
		linux-kernel@vger.kernel.org linux-kernel@archiver.kernel.org
	public-inbox-index lkml

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/ public-inbox