From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Dmitry Fomichev <dmitry.fomichev@wdc.com>,
Damien Le Moal <damien.lemoal@wdc.com>,
Mike Snitzer <snitzer@redhat.com>
Subject: [PATCH 5.2 144/162] dm zoned: properly handle backing device failure
Date: Tue, 27 Aug 2019 09:51:12 +0200 [thread overview]
Message-ID: <20190827072743.708091391@linuxfoundation.org> (raw)
In-Reply-To: <20190827072738.093683223@linuxfoundation.org>
From: Dmitry Fomichev <dmitry.fomichev@wdc.com>
commit 75d66ffb48efb30f2dd42f041ba8b39c5b2bd115 upstream.
dm-zoned is observed to lock up or livelock in case of hardware
failure or some misconfiguration of the backing zoned device.
This patch adds a new dm-zoned target function that checks the status of
the backing device. If the request queue of the backing device is found
to be in dying state or the SCSI backing device enters offline state,
the health check code sets a dm-zoned target flag prompting all further
incoming I/O to be rejected. In order to detect backing device failures
timely, this new function is called in the request mapping path, at the
beginning of every reclaim run and before performing any metadata I/O.
The proper way out of this situation is to do
dmsetup remove <dm-zoned target>
and recreate the target when the problem with the backing device
is resolved.
Fixes: 3b1a94c88b79 ("dm zoned: drive-managed zoned block device target")
Cc: stable@vger.kernel.org
Signed-off-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Reviewed-by: Damien Le Moal <damien.lemoal@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 | 51 ++++++++++++++++++++++++++++++++---------
drivers/md/dm-zoned-reclaim.c | 18 ++++++++++++--
drivers/md/dm-zoned-target.c | 45 ++++++++++++++++++++++++++++++++++--
drivers/md/dm-zoned.h | 10 ++++++++
4 files changed, 110 insertions(+), 14 deletions(-)
--- a/drivers/md/dm-zoned-metadata.c
+++ b/drivers/md/dm-zoned-metadata.c
@@ -401,15 +401,18 @@ static struct dmz_mblock *dmz_get_mblock
sector_t block = zmd->sb[zmd->mblk_primary].block + mblk_no;
struct bio *bio;
+ if (dmz_bdev_is_dying(zmd->dev))
+ return ERR_PTR(-EIO);
+
/* Get a new block and a BIO to read it */
mblk = dmz_alloc_mblock(zmd, mblk_no);
if (!mblk)
- return NULL;
+ return ERR_PTR(-ENOMEM);
bio = bio_alloc(GFP_NOIO, 1);
if (!bio) {
dmz_free_mblock(zmd, mblk);
- return NULL;
+ return ERR_PTR(-ENOMEM);
}
spin_lock(&zmd->mblk_lock);
@@ -540,8 +543,8 @@ static struct dmz_mblock *dmz_get_mblock
if (!mblk) {
/* Cache miss: read the block from disk */
mblk = dmz_get_mblock_slow(zmd, mblk_no);
- if (!mblk)
- return ERR_PTR(-ENOMEM);
+ if (IS_ERR(mblk))
+ return mblk;
}
/* Wait for on-going read I/O and check for error */
@@ -569,16 +572,19 @@ static void dmz_dirty_mblock(struct dmz_
/*
* Issue a metadata block write BIO.
*/
-static void dmz_write_mblock(struct dmz_metadata *zmd, struct dmz_mblock *mblk,
- unsigned int set)
+static int dmz_write_mblock(struct dmz_metadata *zmd, struct dmz_mblock *mblk,
+ unsigned int set)
{
sector_t block = zmd->sb[set].block + mblk->no;
struct bio *bio;
+ if (dmz_bdev_is_dying(zmd->dev))
+ return -EIO;
+
bio = bio_alloc(GFP_NOIO, 1);
if (!bio) {
set_bit(DMZ_META_ERROR, &mblk->state);
- return;
+ return -ENOMEM;
}
set_bit(DMZ_META_WRITING, &mblk->state);
@@ -590,6 +596,8 @@ static void dmz_write_mblock(struct dmz_
bio_set_op_attrs(bio, REQ_OP_WRITE, REQ_META | REQ_PRIO);
bio_add_page(bio, mblk->page, DMZ_BLOCK_SIZE, 0);
submit_bio(bio);
+
+ return 0;
}
/*
@@ -601,6 +609,9 @@ static int dmz_rdwr_block(struct dmz_met
struct bio *bio;
int ret;
+ if (dmz_bdev_is_dying(zmd->dev))
+ return -EIO;
+
bio = bio_alloc(GFP_NOIO, 1);
if (!bio)
return -ENOMEM;
@@ -658,22 +669,29 @@ static int dmz_write_dirty_mblocks(struc
{
struct dmz_mblock *mblk;
struct blk_plug plug;
- int ret = 0;
+ int ret = 0, nr_mblks_submitted = 0;
/* Issue writes */
blk_start_plug(&plug);
- list_for_each_entry(mblk, write_list, link)
- dmz_write_mblock(zmd, mblk, set);
+ list_for_each_entry(mblk, write_list, link) {
+ ret = dmz_write_mblock(zmd, mblk, set);
+ if (ret)
+ break;
+ nr_mblks_submitted++;
+ }
blk_finish_plug(&plug);
/* Wait for completion */
list_for_each_entry(mblk, write_list, link) {
+ if (!nr_mblks_submitted)
+ break;
wait_on_bit_io(&mblk->state, DMZ_META_WRITING,
TASK_UNINTERRUPTIBLE);
if (test_bit(DMZ_META_ERROR, &mblk->state)) {
clear_bit(DMZ_META_ERROR, &mblk->state);
ret = -EIO;
}
+ nr_mblks_submitted--;
}
/* Flush drive cache (this will also sync data) */
@@ -735,6 +753,11 @@ int dmz_flush_metadata(struct dmz_metada
*/
dmz_lock_flush(zmd);
+ if (dmz_bdev_is_dying(zmd->dev)) {
+ ret = -EIO;
+ goto out;
+ }
+
/* Get dirty blocks */
spin_lock(&zmd->mblk_lock);
list_splice_init(&zmd->mblk_dirty_list, &write_list);
@@ -1623,6 +1646,10 @@ again:
/* Alloate a random zone */
dzone = dmz_alloc_zone(zmd, DMZ_ALLOC_RND);
if (!dzone) {
+ if (dmz_bdev_is_dying(zmd->dev)) {
+ dzone = ERR_PTR(-EIO);
+ goto out;
+ }
dmz_wait_for_free_zones(zmd);
goto again;
}
@@ -1720,6 +1747,10 @@ again:
/* Alloate a random zone */
bzone = dmz_alloc_zone(zmd, DMZ_ALLOC_RND);
if (!bzone) {
+ if (dmz_bdev_is_dying(zmd->dev)) {
+ bzone = ERR_PTR(-EIO);
+ goto out;
+ }
dmz_wait_for_free_zones(zmd);
goto again;
}
--- a/drivers/md/dm-zoned-reclaim.c
+++ b/drivers/md/dm-zoned-reclaim.c
@@ -37,7 +37,7 @@ enum {
/*
* Number of seconds of target BIO inactivity to consider the target idle.
*/
-#define DMZ_IDLE_PERIOD (10UL * HZ)
+#define DMZ_IDLE_PERIOD (10UL * HZ)
/*
* Percentage of unmapped (free) random zones below which reclaim starts
@@ -134,6 +134,9 @@ static int dmz_reclaim_copy(struct dmz_r
set_bit(DM_KCOPYD_WRITE_SEQ, &flags);
while (block < end_block) {
+ if (dev->flags & DMZ_BDEV_DYING)
+ return -EIO;
+
/* Get a valid region from the source zone */
ret = dmz_first_valid_block(zmd, src_zone, &block);
if (ret <= 0)
@@ -451,6 +454,9 @@ static void dmz_reclaim_work(struct work
unsigned int p_unmap_rnd;
int ret;
+ if (dmz_bdev_is_dying(zrc->dev))
+ return;
+
if (!dmz_should_reclaim(zrc)) {
mod_delayed_work(zrc->wq, &zrc->work, DMZ_IDLE_PERIOD);
return;
@@ -480,8 +486,16 @@ static void dmz_reclaim_work(struct work
p_unmap_rnd, nr_unmap_rnd, nr_rnd);
ret = dmz_do_reclaim(zrc);
- if (ret)
+ 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.
+ */
+ return;
+ }
dmz_schedule_reclaim(zrc);
}
--- a/drivers/md/dm-zoned-target.c
+++ b/drivers/md/dm-zoned-target.c
@@ -133,6 +133,8 @@ static int dmz_submit_bio(struct dmz_tar
refcount_inc(&bioctx->ref);
generic_make_request(clone);
+ if (clone->bi_status == BLK_STS_IOERR)
+ return -EIO;
if (bio_op(bio) == REQ_OP_WRITE && dmz_is_seq(zone))
zone->wp_block += nr_blocks;
@@ -277,8 +279,8 @@ static int dmz_handle_buffered_write(str
/* Get the buffer zone. One will be allocated if needed */
bzone = dmz_get_chunk_buffer(zmd, zone);
- if (!bzone)
- return -ENOSPC;
+ if (IS_ERR(bzone))
+ return PTR_ERR(bzone);
if (dmz_is_readonly(bzone))
return -EROFS;
@@ -389,6 +391,11 @@ static void dmz_handle_bio(struct dmz_ta
dmz_lock_metadata(zmd);
+ if (dmz->dev->flags & DMZ_BDEV_DYING) {
+ ret = -EIO;
+ goto out;
+ }
+
/*
* Get the data zone mapping the chunk. There may be no
* mapping for read and discard. If a mapping is obtained,
@@ -493,6 +500,8 @@ static void dmz_flush_work(struct work_s
/* Flush dirty metadata blocks */
ret = dmz_flush_metadata(dmz->metadata);
+ if (ret)
+ dmz_dev_debug(dmz->dev, "Metadata flush failed, rc=%d\n", ret);
/* Process queued flush requests */
while (1) {
@@ -557,6 +566,32 @@ out:
}
/*
+ * Check the backing device availability. 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)) {
+ 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;
+ }
+ }
+ }
+
+ return dmz_dev->flags & DMZ_BDEV_DYING;
+}
+
+/*
* Process a new BIO.
*/
static int dmz_map(struct dm_target *ti, struct bio *bio)
@@ -569,6 +604,9 @@ static int dmz_map(struct dm_target *ti,
sector_t chunk_sector;
int ret;
+ if (dmz_bdev_is_dying(dmz->dev))
+ return DM_MAPIO_KILL;
+
dmz_dev_debug(dev, "BIO op %d sector %llu + %u => chunk %llu, block %llu, %u blocks",
bio_op(bio), (unsigned long long)sector, nr_sectors,
(unsigned long long)dmz_bio_chunk(dmz->dev, bio),
@@ -865,6 +903,9 @@ static int dmz_prepare_ioctl(struct dm_t
{
struct dmz_target *dmz = ti->private;
+ if (dmz_bdev_is_dying(dmz->dev))
+ return -ENODEV;
+
*bdev = dmz->dev->bdev;
return 0;
--- a/drivers/md/dm-zoned.h
+++ b/drivers/md/dm-zoned.h
@@ -56,6 +56,8 @@ struct dmz_dev {
unsigned int nr_zones;
+ unsigned int flags;
+
sector_t zone_nr_sectors;
unsigned int zone_nr_sectors_shift;
@@ -67,6 +69,9 @@ struct dmz_dev {
(dev)->zone_nr_sectors_shift)
#define dmz_chunk_block(dev, b) ((b) & ((dev)->zone_nr_blocks - 1))
+/* Device flags. */
+#define DMZ_BDEV_DYING (1 << 0)
+
/*
* Zone descriptor.
*/
@@ -245,4 +250,9 @@ void dmz_resume_reclaim(struct dmz_recla
void dmz_reclaim_bio_acc(struct dmz_reclaim *zrc);
void dmz_schedule_reclaim(struct dmz_reclaim *zrc);
+/*
+ * Functions defined in dm-zoned-target.c
+ */
+bool dmz_bdev_is_dying(struct dmz_dev *dmz_dev);
+
#endif /* DM_ZONED_H */
next prev parent reply other threads:[~2019-08-27 8:06 UTC|newest]
Thread overview: 173+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-27 7:48 [PATCH 5.2 000/162] 5.2.11-stable review Greg Kroah-Hartman
2019-08-27 7:48 ` [PATCH 5.2 001/162] ASoC: simple_card_utils.h: care NULL dai at asoc_simple_debug_dai() Greg Kroah-Hartman
2019-08-27 7:48 ` [PATCH 5.2 002/162] ASoC: simple-card: fix an use-after-free in simple_dai_link_of_dpcm() Greg Kroah-Hartman
2019-08-27 7:48 ` [PATCH 5.2 003/162] ASoC: simple-card: fix an use-after-free in simple_for_each_link() Greg Kroah-Hartman
2019-08-27 7:48 ` [PATCH 5.2 004/162] ASoC: audio-graph-card: fix use-after-free in graph_dai_link_of_dpcm() Greg Kroah-Hartman
2019-08-27 7:48 ` [PATCH 5.2 005/162] ASoC: audio-graph-card: fix an use-after-free in graph_get_dai_id() Greg Kroah-Hartman
2019-08-27 7:48 ` [PATCH 5.2 006/162] ASoC: audio-graph-card: add missing const at graph_get_dai_id() Greg Kroah-Hartman
2019-08-27 7:48 ` [PATCH 5.2 007/162] regulator: axp20x: fix DCDCA and DCDCD for AXP806 Greg Kroah-Hartman
2019-08-27 7:48 ` [PATCH 5.2 008/162] regulator: axp20x: fix DCDC5 and DCDC6 for AXP803 Greg Kroah-Hartman
2019-08-27 7:48 ` [PATCH 5.2 009/162] ASoC: samsung: odroid: fix an use-after-free issue for codec Greg Kroah-Hartman
2019-08-27 7:48 ` [PATCH 5.2 010/162] ASoC: samsung: odroid: fix a double-free issue for cpu_dai Greg Kroah-Hartman
2019-08-27 7:48 ` [PATCH 5.2 011/162] ASoC: Intel: bytcht_es8316: Add quirk for Irbis NB41 netbook Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 012/162] HID: logitech-hidpp: add USB PID for a few more supported mice Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 013/162] HID: Add 044f:b320 ThrustMaster, Inc. 2 in 1 DT Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 014/162] MIPS: kernel: only use i8253 clocksource with periodic clockevent Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 015/162] mips: fix cacheinfo Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 016/162] libbpf: sanitize VAR to conservative 1-byte INT Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 017/162] netfilter: ebtables: fix a memory leak bug in compat Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 018/162] ASoC: dapm: Fix handling of custom_stop_condition on DAPM graph walks Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 019/162] ASoC: SOF: use __u32 instead of uint32_t in uapi headers Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 020/162] spi: pxa2xx: Balance runtime PM enable/disable on error Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 021/162] bpf: sockmap, sock_map_delete needs to use xchg Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 022/162] bpf: sockmap, synchronize_rcu before freeing map Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 023/162] bpf: sockmap, only create entry if ulp is not already enabled Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 024/162] selftests/bpf: fix sendmsg6_prog on s390 Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 025/162] ASoC: dapm: fix a memory leak bug Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 026/162] bonding: Force slave speed check after link state recovery for 802.3ad Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 027/162] net: mvpp2: Dont check for 3 consecutive Idle frames for 10G links Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 028/162] selftests: forwarding: gre_multipath: Enable IPv4 forwarding Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 029/162] selftests: forwarding: gre_multipath: Fix flower filters Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 030/162] selftests/bpf: add another gso_segs access Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 031/162] libbpf: fix using uninitialized ioctl results Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 032/162] can: dev: call netif_carrier_off() in register_candev() Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 033/162] can: mcp251x: add error check when wq alloc failed Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 034/162] can: gw: Fix error path of cgw_module_init Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 035/162] ASoC: Fail card instantiation if DAI format setup fails Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 036/162] Staging: fbtft: Fix GPIO handling Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 037/162] libbpf: silence GCC8 warning about string truncation Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 038/162] st21nfca_connectivity_event_received: null check the allocation Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 039/162] st_nci_hci_connectivity_event_received: " Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 040/162] {nl,mac}80211: fix interface combinations on crypto controlled devices Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 041/162] ASoC: ti: davinci-mcasp: Fix clk PDIR handling for i2s master mode Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 042/162] ASoC: rockchip: Fix mono capture Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 043/162] ASoC: ti: davinci-mcasp: Correct slot_width posed constraint Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 044/162] net: usb: qmi_wwan: Add the BroadMobi BM818 card Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 045/162] qed: RDMA - Fix the hw_ver returned in device attributes Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 046/162] isdn: mISDN: hfcsusb: Fix possible null-pointer dereferences in start_isoc_chain() Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 047/162] habanalabs: fix F/W download in BE architecture Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 048/162] mac80211_hwsim: Fix possible null-pointer dereferences in hwsim_dump_radio_nl() Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 049/162] net: stmmac: manage errors returned by of_get_mac_address() Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 050/162] netfilter: ipset: Actually allow destination MAC address for hash:ip,mac sets too Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 051/162] netfilter: ipset: Copy the right MAC address in bitmap:ip,mac and hash:ip,mac sets Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 052/162] netfilter: ipset: Fix rename concurrency with listing Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 053/162] rxrpc: Fix potential deadlock Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 054/162] rxrpc: Fix the lack of notification when sendmsg() fails on a DATA packet Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 055/162] nvmem: Use the same permissions for eeprom as for nvmem Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 056/162] iwlwifi: mvm: avoid races in rate init and rate perform Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 057/162] iwlwifi: dbg_ini: move iwl_dbg_tlv_load_bin out of debug override ifdef Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 058/162] iwlwifi: dbg_ini: move iwl_dbg_tlv_free outside of debugfs ifdef Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 059/162] iwlwifi: fix locking in delayed GTK setting Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 060/162] iwlwifi: mvm: send LQ command always ASYNC Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 061/162] enetc: Fix build error without PHYLIB Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 062/162] isdn: hfcsusb: Fix mISDN driver crash caused by transfer buffer on the stack Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 063/162] net: phy: phy_led_triggers: Fix a possible null-pointer dereference in phy_led_trigger_change_speed() Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 064/162] perf bench numa: Fix cpu0 binding Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 065/162] spi: pxa2xx: Add support for Intel Tiger Lake Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 066/162] can: sja1000: force the string buffer NULL-terminated Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 067/162] can: peak_usb: " Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 068/162] ASoC: amd: acp3x: use dma_ops of parent device for acp3x dma driver Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 069/162] net/ethernet/qlogic/qed: force the string buffer NULL-terminated Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 070/162] enetc: Select PHYLIB while CONFIG_FSL_ENETC_VF is set Greg Kroah-Hartman
2019-08-27 7:49 ` [PATCH 5.2 071/162] NFSv4: Fix a credential refcount leak in nfs41_check_delegation_stateid Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 072/162] NFSv4: When recovering state fails with EAGAIN, retry the same recovery Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 073/162] NFSv4.1: Fix open stateid recovery Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 074/162] NFSv4.1: Only reap expired delegations Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 075/162] NFSv4: Fix a potential sleep while atomic in nfs4_do_reclaim() Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 076/162] NFS: Fix regression whereby fscache errors are appearing on nofsc mounts Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 077/162] HID: quirks: Set the INCREMENT_USAGE_ON_DUPLICATE quirk on Saitek X52 Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 078/162] HID: input: fix a4tech horizontal wheel custom usage Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 079/162] drm/rockchip: Suspend DP late Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 080/162] SMB3: Fix potential memory leak when processing compound chain Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 081/162] SMB3: Kernel oops mounting a encryptData share with CONFIG_DEBUG_VIRTUAL Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 082/162] sched/deadline: Fix double accounting of rq/running bw in push & pull Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 083/162] sched/psi: Reduce psimon FIFO priority Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 084/162] sched/psi: Do not require setsched permission from the trigger creator Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 085/162] s390/protvirt: avoid memory sharing for diag 308 set/store Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 086/162] s390/mm: fix dump_pagetables top level page table walking Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 087/162] s390: put _stext and _etext into .text section Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 088/162] ata: rb532_cf: Fix unused variable warning in rb532_pata_driver_probe Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 089/162] net: cxgb3_main: Fix a resource leak in a error path in init_one() Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 090/162] net: stmmac: Fix issues when number of Queues >= 4 Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 091/162] net: stmmac: tc: Do not return a fragment entry Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 092/162] drm/amdgpu: pin the csb buffer on hw init for gfx v8 Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 093/162] net: hisilicon: make hip04_tx_reclaim non-reentrant Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 094/162] net: hisilicon: fix hip04-xmit never return TX_BUSY Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 095/162] net: hisilicon: Fix dma_map_single failed on arm64 Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 096/162] NFSv4: Ensure state recovery handles ETIMEDOUT correctly Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 097/162] libata: have ata_scsi_rw_xlat() fail invalid passthrough requests Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 098/162] libata: add SG safety checks in SFF pio transfers Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 099/162] x86/lib/cpu: Address missing prototypes warning Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 100/162] drm/vmwgfx: fix memory leak when too many retries have occurred Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 101/162] block: aoe: Fix kernel crash due to atomic sleep when exiting Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 102/162] block, bfq: handle NULL return value by bfq_init_rq() Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 103/162] perf ftrace: Fix failure to set cpumask when only one cpu is present Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 104/162] perf cpumap: Fix writing to illegal memory in handling cpumap mask Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 105/162] perf pmu-events: Fix missing "cpu_clk_unhalted.core" event Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 106/162] dt-bindings: riscv: fix the schema compatible string for the HiFive Unleashed board Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 107/162] KVM: arm64: Dont write junk to sysregs on reset Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 108/162] KVM: arm: Dont write junk to CP15 registers " Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 109/162] selftests: kvm: Adding config fragments Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 110/162] iwlwifi: mvm: disable TX-AMSDU on older NICs Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 111/162] HID: wacom: correct misreported EKR ring values Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 112/162] HID: wacom: Correct distance scale for 2nd-gen Intuos devices Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 113/162] Revert "KVM: x86/mmu: Zap only the relevant pages when removing a memslot" Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 114/162] Revert "dm bufio: fix deadlock with loop device" Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 115/162] clk: socfpga: stratix10: fix rate caclulationg for cnt_clks Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 116/162] ceph: clear page dirty before invalidate page Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 117/162] ceph: dont try fill file_lock on unsuccessful GETFILELOCK reply Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 118/162] libceph: fix PG split vs OSD (re)connect race Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 119/162] drm/amdgpu/gfx9: update pg_flags after determining if gfx off is possible Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 120/162] drm/nouveau: Dont retry infinitely when receiving no data on i2c over AUX Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 121/162] scsi: ufs: Fix NULL pointer dereference in ufshcd_config_vreg_hpm() Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 122/162] gpiolib: never report open-drain/source lines as input to user-space Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 123/162] Drivers: hv: vmbus: Fix virt_to_hvpfn() for X86_PAE Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 124/162] userfaultfd_release: always remove uffd flags and clear vm_userfaultfd_ctx Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 125/162] x86/retpoline: Dont clobber RFLAGS during CALL_NOSPEC on i386 Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 126/162] x86/apic: Handle missing global clockevent gracefully Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 127/162] x86/CPU/AMD: Clear RDRAND CPUID bit on AMD family 15h/16h Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 128/162] x86/boot: Save fields explicitly, zero out everything else Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 129/162] x86/boot: Fix boot regression caused by bootparam sanitizing Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 130/162] IB/hfi1: Unsafe PSN checking for TID RDMA READ Resp packet Greg Kroah-Hartman
2019-08-27 7:50 ` [PATCH 5.2 131/162] IB/hfi1: Add additional checks when handling TID RDMA READ RESP packet Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 132/162] IB/hfi1: Add additional checks when handling TID RDMA WRITE DATA packet Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 133/162] IB/hfi1: Drop stale TID RDMA packets that cause TIDErr Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 134/162] psi: get poll_work to run when calling poll syscall next time Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 135/162] dm kcopyd: always complete failed jobs Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 136/162] dm dust: use dust block size for badblocklist index Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 137/162] dm btree: fix order of block initialization in btree_split_beneath Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 138/162] dm integrity: fix a crash due to BUG_ON in __journal_read_write() Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 139/162] dm raid: add missing cleanup in raid_ctr() Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 140/162] dm space map metadata: fix missing store of apply_bops() return value Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 141/162] dm table: fix invalid memory accesses with too high sector number Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 142/162] dm zoned: improve error handling in reclaim Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 143/162] dm zoned: improve error handling in i/o map code Greg Kroah-Hartman
2019-08-27 7:51 ` Greg Kroah-Hartman [this message]
2019-08-27 7:51 ` [PATCH 5.2 145/162] genirq: Properly pair kobject_del() with kobject_add() Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 146/162] mm/z3fold.c: fix race between migration and destruction Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 147/162] mm, page_alloc: move_freepages should not examine struct page of reserved memory Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 148/162] mm: memcontrol: flush percpu vmstats before releasing memcg Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 149/162] mm: memcontrol: flush percpu vmevents " Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 150/162] mm, page_owner: handle THP splits correctly Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 151/162] mm/zsmalloc.c: migration can leave pages in ZS_EMPTY indefinitely Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 152/162] mm/zsmalloc.c: fix race condition in zs_destroy_pool Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 153/162] mm/kasan: fix false positive invalid-free reports with CONFIG_KASAN_SW_TAGS=y Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 154/162] xfs: fix missing ILOCK unlock when xfs_setattr_nonsize fails due to EDQUOT Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 155/162] IB/hfi1: Drop stale TID RDMA packets Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 156/162] dm zoned: fix potential NULL dereference in dmz_do_reclaim() Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 157/162] io_uring: fix potential hang with polled IO Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 158/162] io_uring: dont enter poll loop if we have CQEs pending Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 159/162] io_uring: add need_resched() check in inner poll loop Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 160/162] powerpc: Allow flush_(inval_)dcache_range to work across ranges >4GB Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 161/162] rxrpc: Fix local endpoint refcounting Greg Kroah-Hartman
2019-08-27 7:51 ` [PATCH 5.2 162/162] rxrpc: Fix read-after-free in rxrpc_queue_local() Greg Kroah-Hartman
2019-08-27 17:25 ` [PATCH 5.2 000/162] 5.2.11-stable review Guenter Roeck
2019-08-28 15:16 ` Greg Kroah-Hartman
2019-08-27 18:57 ` kernelci.org bot
2019-08-27 19:09 ` shuah
2019-08-28 15:16 ` Greg Kroah-Hartman
2019-08-28 5:00 ` Naresh Kamboju
2019-08-28 15:16 ` Greg Kroah-Hartman
2019-08-28 15:47 ` Dan Rue
2019-08-28 15:52 ` Greg Kroah-Hartman
2019-08-28 16:28 ` Dan Rue
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=20190827072743.708091391@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=damien.lemoal@wdc.com \
--cc=dmitry.fomichev@wdc.com \
--cc=linux-kernel@vger.kernel.org \
--cc=snitzer@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