linux-kernel.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, zhangxiaoxu <zhangxiaoxu5@huawei.com>,
	Dmitry Fomichev <dmitry.fomichev@wdc.com>,
	Mike Snitzer <snitzer@redhat.com>
Subject: [PATCH 4.19 052/140] dm zoned: reduce overhead of backing device checks
Date: Mon, 16 Dec 2019 18:48:40 +0100	[thread overview]
Message-ID: <20191216174802.752828965@linuxfoundation.org> (raw)
In-Reply-To: <20191216174747.111154704@linuxfoundation.org>

From: Dmitry Fomichev <dmitry.fomichev@wdc.com>

commit e7fad909b68aa37470d9f2d2731b5bec355ee5d6 upstream.

Commit 75d66ffb48efb3 added backing device health checks and as a part
of these checks, check_events() block ops template call is invoked in
dm-zoned mapping path as well as in reclaim and flush path. Calling
check_events() with ATA or SCSI backing devices introduces a blocking
scsi_test_unit_ready() call being made in sd_check_events(). Even though
the overhead of calling scsi_test_unit_ready() is small for ATA zoned
devices, it is much larger for SCSI and it affects performance in a very
negative way.

Fix this performance regression by executing check_events() only in case
of any I/O errors. The function dmz_bdev_is_dying() is modified to call
only blk_queue_dying(), while calls to check_events() are made in a new
helper function, dmz_check_bdev().

Reported-by: zhangxiaoxu <zhangxiaoxu5@huawei.com>
Fixes: 75d66ffb48efb3 ("dm zoned: properly handle backing device failure")
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/dm-zoned-metadata.c |   29 ++++++++++++++--------
 drivers/md/dm-zoned-reclaim.c  |    8 +-----
 drivers/md/dm-zoned-target.c   |   54 ++++++++++++++++++++++++++++-------------
 drivers/md/dm-zoned.h          |    2 +
 4 files changed, 61 insertions(+), 32 deletions(-)

--- a/drivers/md/dm-zoned-metadata.c
+++ b/drivers/md/dm-zoned-metadata.c
@@ -552,6 +552,7 @@ static struct dmz_mblock *dmz_get_mblock
 		       TASK_UNINTERRUPTIBLE);
 	if (test_bit(DMZ_META_ERROR, &mblk->state)) {
 		dmz_release_mblock(zmd, mblk);
+		dmz_check_bdev(zmd->dev);
 		return ERR_PTR(-EIO);
 	}
 
@@ -623,6 +624,8 @@ static int dmz_rdwr_block(struct dmz_met
 	ret = submit_bio_wait(bio);
 	bio_put(bio);
 
+	if (ret)
+		dmz_check_bdev(zmd->dev);
 	return ret;
 }
 
@@ -689,6 +692,7 @@ static int dmz_write_dirty_mblocks(struc
 			       TASK_UNINTERRUPTIBLE);
 		if (test_bit(DMZ_META_ERROR, &mblk->state)) {
 			clear_bit(DMZ_META_ERROR, &mblk->state);
+			dmz_check_bdev(zmd->dev);
 			ret = -EIO;
 		}
 		nr_mblks_submitted--;
@@ -766,7 +770,7 @@ int dmz_flush_metadata(struct dmz_metada
 	/* If there are no dirty metadata blocks, just flush the device cache */
 	if (list_empty(&write_list)) {
 		ret = blkdev_issue_flush(zmd->dev->bdev, GFP_NOIO, NULL);
-		goto out;
+		goto err;
 	}
 
 	/*
@@ -776,7 +780,7 @@ int dmz_flush_metadata(struct dmz_metada
 	 */
 	ret = dmz_log_dirty_mblocks(zmd, &write_list);
 	if (ret)
-		goto out;
+		goto err;
 
 	/*
 	 * The log is on disk. It is now safe to update in place
@@ -784,11 +788,11 @@ int dmz_flush_metadata(struct dmz_metada
 	 */
 	ret = dmz_write_dirty_mblocks(zmd, &write_list, zmd->mblk_primary);
 	if (ret)
-		goto out;
+		goto err;
 
 	ret = dmz_write_sb(zmd, zmd->mblk_primary);
 	if (ret)
-		goto out;
+		goto err;
 
 	while (!list_empty(&write_list)) {
 		mblk = list_first_entry(&write_list, struct dmz_mblock, link);
@@ -803,16 +807,20 @@ int dmz_flush_metadata(struct dmz_metada
 
 	zmd->sb_gen++;
 out:
-	if (ret && !list_empty(&write_list)) {
-		spin_lock(&zmd->mblk_lock);
-		list_splice(&write_list, &zmd->mblk_dirty_list);
-		spin_unlock(&zmd->mblk_lock);
-	}
-
 	dmz_unlock_flush(zmd);
 	up_write(&zmd->mblk_sem);
 
 	return ret;
+
+err:
+	if (!list_empty(&write_list)) {
+		spin_lock(&zmd->mblk_lock);
+		list_splice(&write_list, &zmd->mblk_dirty_list);
+		spin_unlock(&zmd->mblk_lock);
+	}
+	if (!dmz_check_bdev(zmd->dev))
+		ret = -EIO;
+	goto out;
 }
 
 /*
@@ -1235,6 +1243,7 @@ static int dmz_update_zone(struct dmz_me
 	if (ret) {
 		dmz_dev_err(zmd->dev, "Get zone %u report failed",
 			    dmz_id(zmd, zone));
+		dmz_check_bdev(zmd->dev);
 		return ret;
 	}
 
--- a/drivers/md/dm-zoned-reclaim.c
+++ b/drivers/md/dm-zoned-reclaim.c
@@ -81,6 +81,7 @@ static int dmz_reclaim_align_wp(struct d
 			    "Align zone %u wp %llu to %llu (wp+%u) blocks failed %d",
 			    dmz_id(zmd, zone), (unsigned long long)wp_block,
 			    (unsigned long long)block, nr_blocks, ret);
+		dmz_check_bdev(zrc->dev);
 		return ret;
 	}
 
@@ -488,12 +489,7 @@ static void dmz_reclaim_work(struct work
 	ret = dmz_do_reclaim(zrc);
 	if (ret) {
 		dmz_dev_debug(zrc->dev, "Reclaim error %d\n", ret);
-		if (ret == -EIO)
-			/*
-			 * LLD might be performing some error handling sequence
-			 * at the underlying device. To not interfere, do not
-			 * attempt to schedule the next reclaim run immediately.
-			 */
+		if (!dmz_check_bdev(zrc->dev))
 			return;
 	}
 
--- a/drivers/md/dm-zoned-target.c
+++ b/drivers/md/dm-zoned-target.c
@@ -79,6 +79,8 @@ static inline void dmz_bio_endio(struct
 
 	if (status != BLK_STS_OK && bio->bi_status == BLK_STS_OK)
 		bio->bi_status = status;
+	if (bio->bi_status != BLK_STS_OK)
+		bioctx->target->dev->flags |= DMZ_CHECK_BDEV;
 
 	if (atomic_dec_and_test(&bioctx->ref)) {
 		struct dm_zone *zone = bioctx->zone;
@@ -564,32 +566,52 @@ out:
 }
 
 /*
- * Check the backing device availability. If it's on the way out,
+ * Check if the backing device is being removed. If it's on the way out,
  * start failing I/O. Reclaim and metadata components also call this
  * function to cleanly abort operation in the event of such failure.
  */
 bool dmz_bdev_is_dying(struct dmz_dev *dmz_dev)
 {
-	struct gendisk *disk;
+	if (dmz_dev->flags & DMZ_BDEV_DYING)
+		return true;
 
-	if (!(dmz_dev->flags & DMZ_BDEV_DYING)) {
-		disk = dmz_dev->bdev->bd_disk;
-		if (blk_queue_dying(bdev_get_queue(dmz_dev->bdev))) {
-			dmz_dev_warn(dmz_dev, "Backing device queue dying");
-			dmz_dev->flags |= DMZ_BDEV_DYING;
-		} else if (disk->fops->check_events) {
-			if (disk->fops->check_events(disk, 0) &
-					DISK_EVENT_MEDIA_CHANGE) {
-				dmz_dev_warn(dmz_dev, "Backing device offline");
-				dmz_dev->flags |= DMZ_BDEV_DYING;
-			}
-		}
+	if (dmz_dev->flags & DMZ_CHECK_BDEV)
+		return !dmz_check_bdev(dmz_dev);
+
+	if (blk_queue_dying(bdev_get_queue(dmz_dev->bdev))) {
+		dmz_dev_warn(dmz_dev, "Backing device queue dying");
+		dmz_dev->flags |= DMZ_BDEV_DYING;
 	}
 
 	return dmz_dev->flags & DMZ_BDEV_DYING;
 }
 
 /*
+ * Check the backing device availability. This detects such events as
+ * backing device going offline due to errors, media removals, etc.
+ * This check is less efficient than dmz_bdev_is_dying() and should
+ * only be performed as a part of error handling.
+ */
+bool dmz_check_bdev(struct dmz_dev *dmz_dev)
+{
+	struct gendisk *disk;
+
+	dmz_dev->flags &= ~DMZ_CHECK_BDEV;
+
+	if (dmz_bdev_is_dying(dmz_dev))
+		return false;
+
+	disk = dmz_dev->bdev->bd_disk;
+	if (disk->fops->check_events &&
+	    disk->fops->check_events(disk, 0) & DISK_EVENT_MEDIA_CHANGE) {
+		dmz_dev_warn(dmz_dev, "Backing device offline");
+		dmz_dev->flags |= DMZ_BDEV_DYING;
+	}
+
+	return !(dmz_dev->flags & DMZ_BDEV_DYING);
+}
+
+/*
  * Process a new BIO.
  */
 static int dmz_map(struct dm_target *ti, struct bio *bio)
@@ -902,8 +924,8 @@ static int dmz_prepare_ioctl(struct dm_t
 {
 	struct dmz_target *dmz = ti->private;
 
-	if (dmz_bdev_is_dying(dmz->dev))
-		return -ENODEV;
+	if (!dmz_check_bdev(dmz->dev))
+		return -EIO;
 
 	*bdev = dmz->dev->bdev;
 
--- a/drivers/md/dm-zoned.h
+++ b/drivers/md/dm-zoned.h
@@ -71,6 +71,7 @@ struct dmz_dev {
 
 /* Device flags. */
 #define DMZ_BDEV_DYING		(1 << 0)
+#define DMZ_CHECK_BDEV		(2 << 0)
 
 /*
  * Zone descriptor.
@@ -254,5 +255,6 @@ void dmz_schedule_reclaim(struct dmz_rec
  * Functions defined in dm-zoned-target.c
  */
 bool dmz_bdev_is_dying(struct dmz_dev *dmz_dev);
+bool dmz_check_bdev(struct dmz_dev *dmz_dev);
 
 #endif /* DM_ZONED_H */



  parent reply	other threads:[~2019-12-16 18:05 UTC|newest]

Thread overview: 152+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-16 17:47 [PATCH 4.19 000/140] 4.19.90-stable review Greg Kroah-Hartman
2019-12-16 17:47 ` [PATCH 4.19 001/140] usb: gadget: configfs: Fix missing spin_lock_init() Greg Kroah-Hartman
2019-12-16 17:47 ` [PATCH 4.19 002/140] usb: gadget: pch_udc: fix use after free Greg Kroah-Hartman
2019-12-16 17:47 ` [PATCH 4.19 003/140] scsi: qla2xxx: Fix driver unload hang Greg Kroah-Hartman
2019-12-16 17:47 ` [PATCH 4.19 004/140] media: venus: remove invalid compat_ioctl32 handler Greg Kroah-Hartman
2019-12-16 17:47 ` [PATCH 4.19 005/140] USB: uas: honor flag to avoid CAPACITY16 Greg Kroah-Hartman
2019-12-16 17:47 ` [PATCH 4.19 006/140] USB: uas: heed CAPACITY_HEURISTICS Greg Kroah-Hartman
2019-12-16 17:47 ` [PATCH 4.19 007/140] USB: documentation: flags on usb-storage versus UAS Greg Kroah-Hartman
2019-12-16 17:47 ` [PATCH 4.19 008/140] usb: Allow USB device to be warm reset in suspended state Greg Kroah-Hartman
2019-12-16 17:47 ` [PATCH 4.19 009/140] staging: rtl8188eu: fix interface sanity check Greg Kroah-Hartman
2019-12-16 17:47 ` [PATCH 4.19 010/140] staging: rtl8712: " Greg Kroah-Hartman
2019-12-16 17:47 ` [PATCH 4.19 011/140] staging: gigaset: fix general protection fault on probe Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 012/140] staging: gigaset: fix illegal free on probe errors Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 013/140] staging: gigaset: add endpoint-type sanity check Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 014/140] usb: xhci: only set D3hot for pci device Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 015/140] xhci: Fix memory leak in xhci_add_in_port() Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 016/140] xhci: Increase STS_HALT timeout in xhci_suspend() Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 017/140] xhci: handle some XHCI_TRUST_TX_LENGTH quirks cases as default behaviour Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 018/140] ARM: dts: pandora-common: define wl1251 as child node of mmc3 Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 019/140] iio: adis16480: Add debugfs_reg_access entry Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 020/140] iio: humidity: hdc100x: fix IIO_HUMIDITYRELATIVE channel reporting Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 021/140] iio: imu: inv_mpu6050: fix temperature reporting using bad unit Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 022/140] USB: atm: ueagle-atm: add missing endpoint check Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 023/140] USB: idmouse: fix interface sanity checks Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 024/140] USB: serial: io_edgeport: fix epic endpoint lookup Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 025/140] usb: roles: fix a potential use after free Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 026/140] USB: adutux: fix interface sanity check Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 027/140] usb: core: urb: fix URB structure initialization function Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 028/140] usb: mon: Fix a deadlock in usbmon between mmap and read Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 029/140] tpm: add check after commands attribs tab allocation Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 030/140] mtd: spear_smi: Fix Write Burst mode Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 031/140] virtio-balloon: fix managed page counts when migrating pages between zones Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 032/140] usb: dwc3: pci: add ID for the Intel Comet Lake -H variant Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 033/140] usb: dwc3: gadget: Fix logical condition Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 034/140] usb: dwc3: ep0: Clear started flag on completion Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 035/140] phy: renesas: rcar-gen3-usb2: Fix sysfs interface of "role" Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 036/140] btrfs: check page->mapping when loading free space cache Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 037/140] btrfs: use refcount_inc_not_zero in kill_all_nodes Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 038/140] Btrfs: fix metadata space leak on fixup worker failure to set range as delalloc Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 039/140] Btrfs: fix negative subv_writers counter and data space leak after buffered write Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 040/140] btrfs: Avoid getting stuck during cyclic writebacks Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 041/140] btrfs: Remove btrfs_bio::flags member Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 042/140] Btrfs: send, skip backreference walking for extents with many references Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 043/140] btrfs: record all roots for rename exchange on a subvol Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 044/140] rtlwifi: rtl8192de: Fix missing code to retrieve RX buffer address Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 045/140] rtlwifi: rtl8192de: Fix missing callback that tests for hw release of buffer Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 046/140] rtlwifi: rtl8192de: Fix missing enable interrupt flag Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 047/140] lib: raid6: fix awk build warnings Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 048/140] ovl: fix corner case of non-unique st_dev;st_ino Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 049/140] ovl: relax WARN_ON() on rename to self Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 050/140] hwrng: omap - Fix RNG wait loop timeout Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 051/140] dm writecache: handle REQ_FUA Greg Kroah-Hartman
2019-12-16 17:48 ` Greg Kroah-Hartman [this message]
2019-12-16 17:48 ` [PATCH 4.19 053/140] workqueue: Fix spurious sanity check failures in destroy_workqueue() Greg Kroah-Hartman
2019-12-17  4:38   ` Nobuhiro Iwamatsu
2019-12-17  7:50     ` Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 054/140] workqueue: Fix pwq ref leak in rescuer_thread() Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 055/140] ASoC: rt5645: Fixed buddy jack support Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 056/140] ASoC: rt5645: Fixed typo for " Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 057/140] ASoC: Jack: Fix NULL pointer dereference in snd_soc_jack_report Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 058/140] md: improve handling of bio with REQ_PREFLUSH in md_flush_request() Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 059/140] blk-mq: avoid sysfs buffer overflow with too many CPU cores Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 060/140] cgroup: pids: use atomic64_t for pids->limit Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 061/140] ar5523: check NULL before memcpy() in ar5523_cmd() Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 062/140] s390/mm: properly clear _PAGE_NOEXEC bit when it is not supported Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 063/140] media: bdisp: fix memleak on release Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 064/140] media: radio: wl1273: fix interrupt masking " Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 065/140] media: cec.h: CEC_OP_REC_FLAG_ values were swapped Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 066/140] cpuidle: Do not unset the driver if it is there already Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 067/140] erofs: zero out when listxattr is called with no xattr Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 068/140] intel_th: Fix a double put_device() in error path Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 069/140] intel_th: pci: Add Ice Lake CPU support Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 070/140] intel_th: pci: Add Tiger " Greg Kroah-Hartman
2019-12-16 17:48 ` [PATCH 4.19 071/140] PM / devfreq: Lock devfreq in trans_stat_show Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 072/140] cpufreq: powernv: fix stack bloat and hard limit on number of CPUs Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 073/140] ACPI / hotplug / PCI: Allocate resources directly under the non-hotplug bridge Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 074/140] ACPI: OSL: only free map once in osl.c Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 075/140] ACPI: bus: Fix NULL pointer check in acpi_bus_get_private_data() Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 076/140] ACPI: PM: Avoid attaching ACPI PM domain to certain devices Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 077/140] pinctrl: armada-37xx: Fix irq mask access in armada_37xx_irq_set_type() Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 078/140] pinctrl: samsung: Add of_node_put() before return in error path Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 079/140] pinctrl: samsung: Fix device node refcount leaks in Exynos wakeup controller init Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 080/140] pinctrl: samsung: Fix device node refcount leaks in S3C24xx " Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 081/140] pinctrl: samsung: Fix device node refcount leaks in init code Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 082/140] pinctrl: samsung: Fix device node refcount leaks in S3C64xx wakeup controller init Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 083/140] mmc: host: omap_hsmmc: add code for special init of wl1251 to get rid of pandora_wl1251_init_card Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 084/140] ARM: dts: omap3-tao3530: Fix incorrect MMC card detection GPIO polarity Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 085/140] ppdev: fix PPGETTIME/PPSETTIME ioctls Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 086/140] powerpc: Allow 64bit VDSO __kernel_sync_dicache to work across ranges >4GB Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 087/140] powerpc/xive: Prevent page fault issues in the machine crash handler Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 088/140] powerpc: Allow flush_icache_range to work across ranges >4GB Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 089/140] powerpc/xive: Skip ioremap() of ESB pages for LSI interrupts Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 090/140] video/hdmi: Fix AVI bar unpack Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 091/140] quota: Check that quota is not dirty before release Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 092/140] ext2: check err when partial != NULL Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 093/140] quota: fix livelock in dquot_writeback_dquots Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 094/140] ext4: Fix credit estimate for final inode freeing Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 095/140] reiserfs: fix extended attributes on the root directory Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 096/140] block: fix single range discard merge Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 097/140] scsi: zfcp: trace channel log even for FCP command responses Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 098/140] scsi: qla2xxx: Fix DMA unmap leak Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 099/140] scsi: qla2xxx: Fix hang in fcport delete path Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 100/140] scsi: qla2xxx: Fix session lookup in qlt_abort_work() Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 101/140] scsi: qla2xxx: Fix qla24xx_process_bidir_cmd() Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 102/140] scsi: qla2xxx: Always check the qla2x00_wait_for_hba_online() return value Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 103/140] scsi: qla2xxx: Fix message indicating vectors used by driver Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 104/140] scsi: qla2xxx: Fix SRB leak on switch command timeout Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 105/140] xhci: make sure interrupts are restored to correct state Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 106/140] iio: ad7949: kill pointless "readback"-handling code Greg Kroah-Hartman
2019-12-16 18:31   ` Andrea Merello
2019-12-16 18:45     ` Greg Kroah-Hartman
2019-12-17 16:30       ` Sasha Levin
2019-12-16 17:49 ` [PATCH 4.19 107/140] usb: typec: fix use after free in typec_register_port() Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 108/140] omap: pdata-quirks: remove openpandora quirks for mmc3 and wl1251 Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 109/140] scsi: lpfc: Cap NPIV vports to 256 Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 110/140] scsi: lpfc: Correct code setting non existent bits in sli4 ABORT WQE Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 111/140] scsi: lpfc: Correct topology type reporting on G7 adapters Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 112/140] drbd: Change drbd_request_detach_interruptibles return type to int Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 113/140] e100: Fix passing zero to PTR_ERR warning in e100_load_ucode_wait Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 114/140] pvcalls-front: dont return error when the ring is full Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 115/140] sch_cake: Correctly update parent qlen when splitting GSO packets Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 116/140] net/smc: do not wait under send_lock Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 117/140] net: hns3: clear pci private data when unload hns3 driver Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 118/140] net: hns3: change hnae3_register_ae_dev() to int Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 119/140] net: hns3: Check variable is valid before assigning it to another Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 120/140] scsi: hisi_sas: send primitive NOTIFY to SSP situation only Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 121/140] scsi: hisi_sas: Reject setting programmed minimum linkrate > 1.5G Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 122/140] x86/MCE/AMD: Turn off MC4_MISC thresholding on all family 0x15 models Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 123/140] x86/MCE/AMD: Carve out the MC4_MISC thresholding quirk Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 124/140] power: supply: cpcap-battery: Fix signed counter sample register Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 125/140] mlxsw: spectrum_router: Refresh nexthop neighbour when it becomes dead Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 126/140] media: vimc: fix component match compare Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 127/140] ath10k: fix fw crash by moving chip reset after napi disabled Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 128/140] regulator: 88pm800: fix warning same module names Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 129/140] powerpc: Avoid clang warnings around setjmp and longjmp Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 130/140] powerpc: Fix vDSO clock_getres() Greg Kroah-Hartman
2019-12-16 17:49 ` [PATCH 4.19 131/140] ext4: work around deleting a file with i_nlink == 0 safely Greg Kroah-Hartman
2019-12-16 17:50 ` [PATCH 4.19 132/140] firmware: qcom: scm: Ensure a0 status code is treated as signed Greg Kroah-Hartman
2019-12-16 17:50 ` [PATCH 4.19 133/140] mm/shmem.c: cast the type of unmap_start to u64 Greg Kroah-Hartman
2019-12-16 17:50 ` [PATCH 4.19 134/140] rtc: disable uie before setting time and enable after Greg Kroah-Hartman
2019-12-16 17:50 ` [PATCH 4.19 135/140] splice: only read in as much information as there is pipe buffer space Greg Kroah-Hartman
2019-12-16 17:50 ` [PATCH 4.19 136/140] ext4: fix a bug in ext4_wait_for_tail_page_commit Greg Kroah-Hartman
2019-12-16 17:50 ` [PATCH 4.19 137/140] mfd: rk808: Fix RK818 ID template Greg Kroah-Hartman
2019-12-16 17:50 ` [PATCH 4.19 138/140] mm, thp, proc: report THP eligibility for each vma Greg Kroah-Hartman
2019-12-16 17:50 ` [PATCH 4.19 139/140] mm/memory.c: fix a huge pud insertion race during faulting Greg Kroah-Hartman
2019-12-16 18:36   ` Thomas Hellstrom
2019-12-16 18:44     ` Greg Kroah-Hartman
2019-12-16 17:50 ` [PATCH 4.19 140/140] s390/smp,vdso: fix ASCE handling Greg Kroah-Hartman
2019-12-17  1:01 ` [PATCH 4.19 000/140] 4.19.90-stable review shuah
2019-12-17  6:40 ` Naresh Kamboju
2019-12-17 11:27 ` Jon Hunter
2019-12-17 18:18 ` Guenter Roeck

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=20191216174802.752828965@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=dmitry.fomichev@wdc.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=snitzer@redhat.com \
    --cc=stable@vger.kernel.org \
    --cc=zhangxiaoxu5@huawei.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;
as well as URLs for NNTP newsgroup(s).