All of lore.kernel.org
 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, Joe Thornber <ejt@redhat.com>,
	Mike Snitzer <snitzer@redhat.com>,
	Sasha Levin <alexander.levin@microsoft.com>
Subject: [PATCH 3.18 087/120] dm thin metadata: try to avoid ever aborting transactions
Date: Thu, 11 Oct 2018 17:34:28 +0200	[thread overview]
Message-ID: <20181011152553.413513241@linuxfoundation.org> (raw)
In-Reply-To: <20181011152549.500488630@linuxfoundation.org>

3.18-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Joe Thornber <ejt@redhat.com>

[ Upstream commit 3ab91828166895600efd9cdc3a0eb32001f7204a ]

Committing a transaction can consume some metadata of it's own, we now
reserve a small amount of metadata to cover this.  Free metadata
reported by the kernel will not include this reserve.

If any of the reserve has been used after a commit we enter a new
internal state PM_OUT_OF_METADATA_SPACE.  This is reported as
PM_READ_ONLY, so no userland changes are needed.  If the metadata
device is resized the pool will move back to PM_WRITE.

These changes mean we never need to abort and rollback a transaction due
to running out of metadata space.  This is particularly important
because there have been a handful of reports of data corruption against
DM thin-provisioning that can all be attributed to the thin-pool having
ran out of metadata space.

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 drivers/md/dm-thin-metadata.c |   36 ++++++++++++++++++++
 drivers/md/dm-thin.c          |   73 +++++++++++++++++++++++++++++++++++++-----
 2 files changed, 100 insertions(+), 9 deletions(-)

--- a/drivers/md/dm-thin-metadata.c
+++ b/drivers/md/dm-thin-metadata.c
@@ -191,6 +191,12 @@ struct dm_pool_metadata {
 	bool read_only:1;
 
 	/*
+	 * We reserve a section of the metadata for commit overhead.
+	 * All reported space does *not* include this.
+	 */
+	dm_block_t metadata_reserve;
+
+	/*
 	 * Set if a transaction has to be aborted but the attempt to roll back
 	 * to the previous (good) transaction failed.  The only pool metadata
 	 * operation possible in this state is the closing of the device.
@@ -824,6 +830,22 @@ static int __commit_transaction(struct d
 	return dm_tm_commit(pmd->tm, sblock);
 }
 
+static void __set_metadata_reserve(struct dm_pool_metadata *pmd)
+{
+	int r;
+	dm_block_t total;
+	dm_block_t max_blocks = 4096; /* 16M */
+
+	r = dm_sm_get_nr_blocks(pmd->metadata_sm, &total);
+	if (r) {
+		DMERR("could not get size of metadata device");
+		pmd->metadata_reserve = max_blocks;
+	} else {
+		sector_div(total, 10);
+		pmd->metadata_reserve = min(max_blocks, total);
+	}
+}
+
 struct dm_pool_metadata *dm_pool_metadata_open(struct block_device *bdev,
 					       sector_t data_block_size,
 					       bool format_device)
@@ -858,6 +880,8 @@ struct dm_pool_metadata *dm_pool_metadat
 		return ERR_PTR(r);
 	}
 
+	__set_metadata_reserve(pmd);
+
 	return pmd;
 }
 
@@ -1625,6 +1649,13 @@ int dm_pool_get_free_metadata_block_coun
 	down_read(&pmd->root_lock);
 	if (!pmd->fail_io)
 		r = dm_sm_get_nr_free(pmd->metadata_sm, result);
+
+	if (!r) {
+		if (*result < pmd->metadata_reserve)
+			*result = 0;
+		else
+			*result -= pmd->metadata_reserve;
+	}
 	up_read(&pmd->root_lock);
 
 	return r;
@@ -1746,8 +1777,11 @@ int dm_pool_resize_metadata_dev(struct d
 	int r = -EINVAL;
 
 	down_write(&pmd->root_lock);
-	if (!pmd->fail_io)
+	if (!pmd->fail_io) {
 		r = __resize_space_map(pmd->metadata_sm, new_count);
+		if (!r)
+			__set_metadata_reserve(pmd);
+	}
 	up_write(&pmd->root_lock);
 
 	return r;
--- a/drivers/md/dm-thin.c
+++ b/drivers/md/dm-thin.c
@@ -140,7 +140,13 @@ struct dm_thin_new_mapping;
 enum pool_mode {
 	PM_WRITE,		/* metadata may be changed */
 	PM_OUT_OF_DATA_SPACE,	/* metadata may be changed, though data may not be allocated */
+
+	/*
+	 * Like READ_ONLY, except may switch back to WRITE on metadata resize. Reported as READ_ONLY.
+	 */
+	PM_OUT_OF_METADATA_SPACE,
 	PM_READ_ONLY,		/* metadata may not be changed */
+
 	PM_FAIL,		/* all I/O fails */
 };
 
@@ -994,7 +1000,35 @@ static void set_pool_mode(struct pool *p
 
 static void requeue_bios(struct pool *pool);
 
-static void check_for_space(struct pool *pool)
+static bool is_read_only_pool_mode(enum pool_mode mode)
+{
+	return (mode == PM_OUT_OF_METADATA_SPACE || mode == PM_READ_ONLY);
+}
+
+static bool is_read_only(struct pool *pool)
+{
+	return is_read_only_pool_mode(get_pool_mode(pool));
+}
+
+static void check_for_metadata_space(struct pool *pool)
+{
+	int r;
+	const char *ooms_reason = NULL;
+	dm_block_t nr_free;
+
+	r = dm_pool_get_free_metadata_block_count(pool->pmd, &nr_free);
+	if (r)
+		ooms_reason = "Could not get free metadata blocks";
+	else if (!nr_free)
+		ooms_reason = "No free metadata blocks";
+
+	if (ooms_reason && !is_read_only(pool)) {
+		DMERR("%s", ooms_reason);
+		set_pool_mode(pool, PM_OUT_OF_METADATA_SPACE);
+	}
+}
+
+static void check_for_data_space(struct pool *pool)
 {
 	int r;
 	dm_block_t nr_free;
@@ -1020,14 +1054,16 @@ static int commit(struct pool *pool)
 {
 	int r;
 
-	if (get_pool_mode(pool) >= PM_READ_ONLY)
+	if (get_pool_mode(pool) >= PM_OUT_OF_METADATA_SPACE)
 		return -EINVAL;
 
 	r = dm_pool_commit_metadata(pool->pmd);
 	if (r)
 		metadata_operation_failed(pool, "dm_pool_commit_metadata", r);
-	else
-		check_for_space(pool);
+	else {
+		check_for_metadata_space(pool);
+		check_for_data_space(pool);
+	}
 
 	return r;
 }
@@ -1093,6 +1129,19 @@ static int alloc_data_block(struct thin_
 		return r;
 	}
 
+	r = dm_pool_get_free_metadata_block_count(pool->pmd, &free_blocks);
+	if (r) {
+		metadata_operation_failed(pool, "dm_pool_get_free_metadata_block_count", r);
+		return r;
+	}
+
+	if (!free_blocks) {
+		/* Let's commit before we use up the metadata reserve. */
+		r = commit(pool);
+		if (r)
+			return r;
+	}
+
 	return 0;
 }
 
@@ -1124,6 +1173,7 @@ static int should_error_unserviceable_bi
 	case PM_OUT_OF_DATA_SPACE:
 		return pool->pf.error_if_no_space ? -ENOSPC : 0;
 
+	case PM_OUT_OF_METADATA_SPACE:
 	case PM_READ_ONLY:
 	case PM_FAIL:
 		return -EIO;
@@ -1823,8 +1873,9 @@ static void set_pool_mode(struct pool *p
 		error_retry_list(pool);
 		break;
 
+	case PM_OUT_OF_METADATA_SPACE:
 	case PM_READ_ONLY:
-		if (old_mode != new_mode)
+		if (!is_read_only_pool_mode(old_mode))
 			notify_of_pool_mode_change(pool, "read-only");
 		dm_pool_metadata_read_only(pool->pmd);
 		pool->process_bio = process_bio_read_only;
@@ -2727,6 +2778,10 @@ static int maybe_resize_metadata_dev(str
 		DMINFO("%s: growing the metadata device from %llu to %llu blocks",
 		       dm_device_name(pool->pool_md),
 		       sb_metadata_dev_size, metadata_dev_size);
+
+		if (get_pool_mode(pool) == PM_OUT_OF_METADATA_SPACE)
+			set_pool_mode(pool, PM_WRITE);
+
 		r = dm_pool_resize_metadata_dev(pool->pmd, metadata_dev_size);
 		if (r) {
 			metadata_operation_failed(pool, "dm_pool_resize_metadata_dev", r);
@@ -2974,7 +3029,7 @@ static int pool_message(struct dm_target
 	struct pool_c *pt = ti->private;
 	struct pool *pool = pt->pool;
 
-	if (get_pool_mode(pool) >= PM_READ_ONLY) {
+	if (get_pool_mode(pool) >= PM_OUT_OF_METADATA_SPACE) {
 		DMERR("%s: unable to service pool target messages in READ_ONLY or FAIL mode",
 		      dm_device_name(pool->pool_md));
 		return -EINVAL;
@@ -3047,6 +3102,7 @@ static void pool_status(struct dm_target
 	dm_block_t nr_blocks_data;
 	dm_block_t nr_blocks_metadata;
 	dm_block_t held_root;
+	enum pool_mode mode;
 	char buf[BDEVNAME_SIZE];
 	char buf2[BDEVNAME_SIZE];
 	struct pool_c *pt = ti->private;
@@ -3117,9 +3173,10 @@ static void pool_status(struct dm_target
 		else
 			DMEMIT("- ");
 
-		if (pool->pf.mode == PM_OUT_OF_DATA_SPACE)
+		mode = get_pool_mode(pool);
+		if (mode == PM_OUT_OF_DATA_SPACE)
 			DMEMIT("out_of_data_space ");
-		else if (pool->pf.mode == PM_READ_ONLY)
+		else if (is_read_only_pool_mode(mode))
 			DMEMIT("ro ");
 		else
 			DMEMIT("rw ");



  parent reply	other threads:[~2018-10-11 15:39 UTC|newest]

Thread overview: 135+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-11 15:33 [PATCH 3.18 000/120] 3.18.124-stable review Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 001/120] ASoC: cs4265: fix MMTLR Data switch control Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 002/120] ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 003/120] ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 004/120] ring-buffer: Allow for rescheduling when removing pages Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 005/120] mm: shmem.c: Correctly annotate new inodes for lockdep Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 006/120] gso_segment: Reset skb->mac_len after modifying network header Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 007/120] net/appletalk: fix minor pointer leak to userspace in SIOCFINDIPDDPRT Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 008/120] net: hp100: fix always-true check for link up state Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 009/120] neighbour: confirm neigh entries when ARP packet is received Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 010/120] ipv6: fix possible use-after-free in ip6_xmit() Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 011/120] scsi: target: iscsi: Use hex2bin instead of a re-implementation Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 012/120] ocfs2: fix ocfs2 read block panic Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 013/120] ext4: avoid divide by zero fault when deleting corrupted inline directories Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 014/120] ext4: recalucate superblock checksum after updating free blocks/inodes Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 015/120] ext4: fix online resizes handling of a too-small final block group Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 016/120] ext4: dont mark mmp buffer head dirty Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 017/120] arm64: Add trace_hardirqs_off annotation in ret_to_user Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 018/120] HID: sony: Update device ids Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 019/120] HID: sony: Support DS4 dongle Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 020/120] crypto: skcipher - Fix -Wstringop-truncation warnings Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 021/120] tsl2550: fix lux1_input error in low light Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 022/120] x86/numa_emulation: Fix emulated-to-physical node mapping Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 023/120] uwb: hwa-rc: fix memory leak at probe Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 024/120] USB: serial: kobil_sct: fix modem-status error handling Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 025/120] media: exynos4-is: Prevent NULL pointer dereference in __isp_video_try_fmt() Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 026/120] powerpc/kdump: Handle crashkernel memory reservation failure Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 027/120] x86/tsc: Add missing header to tsc_msr.c Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 028/120] scsi: target/iscsi: Make iscsit_ta_authentication() respect the output buffer size Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 029/120] scsi: ibmvscsi: Improve strings handling Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 030/120] usb: wusbcore: security: cast sizeof to int for comparison Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 031/120] alarmtimer: Prevent overflow for relative nanosleep Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 032/120] s390/extmem: fix gcc 8 stringop-overflow warning Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 033/120] ALSA: snd-aoa: add of_node_put() in error path Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 034/120] media: s3c-camif: ignore -ENOIOCTLCMD from v4l2_subdev_call for s_power Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 035/120] media: soc_camera: ov772x: correct setting of banding filter Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 036/120] staging: android: ashmem: Fix mmap size validation Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 037/120] drivers/tty: add error handling for pcmcia_loop_config Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 038/120] media: tm6000: add error handling for dvb_register_adapter Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 039/120] ALSA: hda: Add AZX_DCAPS_PM_RUNTIME for AMD Raven Ridge Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 040/120] rndis_wlan: potential buffer overflow in rndis_wlan_auth_indication() Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 041/120] wlcore: Add missing PM call for wlcore_cmd_wait_for_event_or_timeout() Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 042/120] ARM: mvebu: declare asm symbols as character arrays in pmsu.c Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 043/120] HID: hid-ntrig: add error handling for sysfs_create_group Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 044/120] scsi: bnx2i: add error handling for ioremap_nocache Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 045/120] ASoC: dapm: Fix potential DAI widget pointer deref when linking DAIs Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 046/120] module: exclude SHN_UNDEF symbols from kallsyms api Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 047/120] nfsd: fix corrupted reply to badly ordered compound Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 048/120] floppy: Do not copy a kernel pointer to user memory in FDGETPRM ioctl Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 049/120] serial: cpm_uart: return immediately from console poll Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 050/120] spi: tegra20-slink: explicitly enable/disable clock Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 051/120] spi: sh-msiof: Fix handling of write value for SISTR register Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 052/120] spi: rspi: Fix interrupted DMA transfers Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 053/120] USB: fix error handling in usb_driver_claim_interface() Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 054/120] USB: handle NULL config in usb_find_alt_setting() Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 055/120] slub: make ->cpu_partial unsigned int Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 056/120] media: uvcvideo: Support realteks UVC 1.5 device Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 057/120] USB: usbdevfs: sanitize flags more Greg Kroah-Hartman
2018-10-11 15:33 ` [PATCH 3.18 058/120] USB: usbdevfs: restore warning for nonsensical flags Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 059/120] Revert "usb: cdc-wdm: Fix a sleep-in-atomic-context bug in service_outstanding_interrupt()" Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 060/120] USB: remove LPM management from usb_driver_claim_interface() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 061/120] scsi: target: iscsi: Use bin2hex instead of a re-implementation Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 062/120] staging: android: ion: fix ION_IOC_{MAP,SHARE} use-after-free Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 063/120] arm64: KVM: Tighten guest core register access from userspace Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 064/120] ext4: verify the depth of extent tree in ext4_find_extent() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 065/120] thermal: of-thermal: disable passive polling when thermal zone is disabled Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 066/120] e1000: check on netif_running() before calling e1000_up() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 067/120] e1000: ensure to free old tx/rx rings in set_ringparam() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 068/120] hwmon: (adt7475) Make adt7475_read_word() return errors Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 069/120] arm64: KVM: Sanitize PSTATE.M when being set from userspace Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 070/120] media: v4l: event: Prevent freeing event subscriptions while accessed Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 071/120] KVM: PPC: Book3S HV: Dont truncate HPTE index in xlate function Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 072/120] mac80211: correct use of IEEE80211_VHT_CAP_RXSTBC_X Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 073/120] gpio: adp5588: Fix sleep-in-atomic-context bug Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 074/120] cfg80211: nl80211_update_ft_ies() to validate NL80211_ATTR_IE Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 075/120] RAID10 BUG_ON in raise_barrier when force is true and conf->barrier is 0 Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 076/120] net: cadence: Fix a sleep-in-atomic-context bug in macb_halt_tx() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 077/120] fs/cifs: dont translate SFM_SLASH (U+F026) to backslash Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 078/120] mac80211: fix a race between restart and CSA flows Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 079/120] mac80211: Fix station bandwidth setting after channel switch Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 080/120] mac80211: shorten the IBSS debug messages Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 081/120] tools/vm/slabinfo.c: fix sign-compare warning Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 082/120] tools/vm/page-types.c: fix "defined but not used" warning Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 083/120] mm: madvise(MADV_DODUMP): allow hugetlbfs pages Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 084/120] RDMA/ucma: check fd type in ucma_migrate_id() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 085/120] USB: yurex: Check for truncation in yurex_read() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 086/120] fs/cifs: suppress a string overflow warning Greg Kroah-Hartman
2018-10-11 15:34 ` Greg Kroah-Hartman [this message]
2018-10-11 15:34 ` [PATCH 3.18 088/120] arch/hexagon: fix kernel/dma.c build warning Greg Kroah-Hartman
2018-10-11 15:34   ` Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 089/120] hexagon: modify ffs() and fls() to return int Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 090/120] r8169: Clear RTL_FLAG_TASK_*_PENDING when clearing RTL_FLAG_TASK_ENABLED Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 091/120] s390/qeth: dont dump past end of unknown HW header Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 092/120] cifs: read overflow in is_valid_oplock_break() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 093/120] xen/manage: dont complain about an empty value in control/sysrq node Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 094/120] xen: fix GCC warning and remove duplicate EVTCHN_ROW/EVTCHN_COL usage Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 095/120] smb2: fix missing files in root share directory listing Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 096/120] crypto: mxs-dcp - Fix wait logic on chan threads Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 097/120] ocfs2: fix locking for res->tracking and dlm->tracking_list Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 098/120] dm thin metadata: fix __udivdi3 undefined on 32-bit Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 099/120] Make file credentials available to the seqfile interfaces Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 100/120] proc: restrict kernel stack dumps to root Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 101/120] fbdev/omapfb: fix omapfb_memory_read infoleak Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 102/120] x86/vdso: Fix asm constraints on vDSO syscall fallbacks Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 103/120] x86/vdso: Fix vDSO syscall fallback asm constraint regression Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 104/120] PCI: Reprogram bridge prefetch registers on resume Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 105/120] mac80211: fix setting IEEE80211_KEY_FLAG_RX_MGMT for AP mode keys Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 106/120] PM / core: Clear the direct_complete flag on errors Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 107/120] USB: serial: simple: add Motorola Tetra MTP6550 id Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 108/120] ext4: only look at the bg_flags field if it is valid Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 109/120] ext4: fix check to prevent initializing reserved inodes Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 110/120] ext4: always check block group bounds in ext4_init_block_bitmap() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 111/120] ext4: fix false negatives *and* false positives in ext4_check_descriptors() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 112/120] ext4: add corruption check in ext4_xattr_set_entry() Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 113/120] ext4: always verify the magic number in xattr blocks Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 114/120] ext4: never move the system.data xattr out of the inode body Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 115/120] ext4: add more inode number paranoia checks Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 116/120] jbd2: dont mark block as modified if the handle is out of credits Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 117/120] ext4: avoid running out of journal credits when appending to an inline file Greg Kroah-Hartman
2018-10-11 15:34 ` [PATCH 3.18 118/120] cgroup: Fix deadlock in cpu hotplug path Greg Kroah-Hartman
2018-10-11 15:35 ` [PATCH 3.18 119/120] ubifs: Check for name being NULL while mounting Greg Kroah-Hartman
2018-10-11 15:35 ` [PATCH 3.18 120/120] ebtables: arpreply: Add the standard target sanity check Greg Kroah-Hartman
2018-10-11 22:46 ` [PATCH 3.18 000/120] 3.18.124-stable review Shuah Khan
2018-10-12 10:23   ` Greg Kroah-Hartman
2018-10-12 12:19 ` Guenter Roeck
2018-10-12 13:37   ` Greg Kroah-Hartman
2018-10-12 14:06     ` Guenter Roeck
2018-10-12 14:21       ` Greg Kroah-Hartman
2018-10-12 15:15         ` Guenter Roeck
2018-10-12 15:39           ` Guenter Roeck
2018-10-12 16:05             ` Greg Kroah-Hartman
2018-10-12 17:07 ` Nathan Chancellor
2018-10-13  6:42   ` Greg Kroah-Hartman
2018-10-12 20:24 ` Guenter Roeck
2018-10-13  6:42   ` 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=20181011152553.413513241@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=alexander.levin@microsoft.com \
    --cc=ejt@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.