public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	alan@lxorguk.ukuu.org.uk, Joe Thornber <ejt@redhat.com>,
	Mike Snitzer <snitzer@redhat.com>,
	Alasdair G Kergon <agk@redhat.com>
Subject: [ 185/221] dm thin: fix race between simultaneous io and discards to same block
Date: Tue, 15 Jan 2013 10:51:52 -0800	[thread overview]
Message-ID: <20130115185011.380103235@linuxfoundation.org> (raw)
In-Reply-To: <20130115184958.025580322@linuxfoundation.org>

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

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

From: Joe Thornber <ejt@redhat.com>

commit e8088073c9610af017fd47fddd104a2c3afb32e8 upstream.

There is a race when discard bios and non-discard bios are issued
simultaneously to the same block.

Discard support is expensive for all thin devices precisely because you
have to be careful to quiesce the area you're discarding.  DM thin must
handle this conflicting IO pattern (simultaneous non-discard vs discard)
even though a sane application shouldn't be issuing such IO.

The race manifests as follows:

1. A non-discard bio is mapped in thin_bio_map.
   This doesn't lock out parallel activity to the same block.

2. A discard bio is issued to the same block as the non-discard bio.

3. The discard bio is locked in a dm_bio_prison_cell in process_discard
   to lock out parallel activity against the same block.

4. The non-discard bio's mapping continues and its all_io_entry is
   incremented so the bio is accounted for in the thin pool's all_io_ds
   which is a dm_deferred_set used to track time locality of non-discard IO.

5. The non-discard bio is finally locked in a dm_bio_prison_cell in
   process_bio.

The race can result in deadlock, leaving the block layer hanging waiting
for completion of a discard bio that never completes, e.g.:

INFO: task ruby:15354 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
ruby            D ffffffff8160f0e0     0 15354  15314 0x00000000
 ffff8802fb08bc58 0000000000000082 ffff8802fb08bfd8 0000000000012900
 ffff8802fb08a010 0000000000012900 0000000000012900 0000000000012900
 ffff8802fb08bfd8 0000000000012900 ffff8803324b9480 ffff88032c6f14c0
Call Trace:
 [<ffffffff814e5a19>] schedule+0x29/0x70
 [<ffffffff814e3d85>] schedule_timeout+0x195/0x220
 [<ffffffffa06b9bc1>] ? _dm_request+0x111/0x160 [dm_mod]
 [<ffffffff814e589e>] wait_for_common+0x11e/0x190
 [<ffffffff8107a170>] ? try_to_wake_up+0x2b0/0x2b0
 [<ffffffff814e59ed>] wait_for_completion+0x1d/0x20
 [<ffffffff81233289>] blkdev_issue_discard+0x219/0x260
 [<ffffffff81233e79>] blkdev_ioctl+0x6e9/0x7b0
 [<ffffffff8119a65c>] block_ioctl+0x3c/0x40
 [<ffffffff8117539c>] do_vfs_ioctl+0x8c/0x340
 [<ffffffff8119a547>] ? block_llseek+0x67/0xb0
 [<ffffffff811756f1>] sys_ioctl+0xa1/0xb0
 [<ffffffff810561f6>] ? sys_rt_sigprocmask+0x86/0xd0
 [<ffffffff814ef099>] system_call_fastpath+0x16/0x1b

The thinp-test-suite's test_discard_random_sectors reliably hits this
deadlock on fast SSD storage.

The fix for this race is that the all_io_entry for a bio must be
incremented whilst the dm_bio_prison_cell is held for the bio's
associated virtual and physical blocks.  That cell locking wasn't
occurring early enough in thin_bio_map.  This patch fixes this.

Care is taken to always call the new function inc_all_io_entry() with
the relevant cells locked, but they are generally unlocked before
calling issue() to try to avoid holding the cells locked across
generic_submit_request.

Also, now that thin_bio_map may lock bios in a cell, process_bio() is no
longer the only thread that will do so.  Because of this we must be sure
to use cell_defer_except() to release all non-holder entries, that
were added by the other thread, because they must be deferred.

This patch depends on "dm thin: replace dm_cell_release_singleton with
cell_defer_except".

Signed-off-by: Joe Thornber <ejt@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/md/dm-thin.c |   84 +++++++++++++++++++++++++++++++++++----------------
 1 file changed, 59 insertions(+), 25 deletions(-)

--- a/drivers/md/dm-thin.c
+++ b/drivers/md/dm-thin.c
@@ -368,6 +368,17 @@ static int bio_triggers_commit(struct th
 		dm_thin_changed_this_transaction(tc->td);
 }
 
+static void inc_all_io_entry(struct pool *pool, struct bio *bio)
+{
+	struct dm_thin_endio_hook *h;
+
+	if (bio->bi_rw & REQ_DISCARD)
+		return;
+
+	h = dm_get_mapinfo(bio)->ptr;
+	h->all_io_entry = dm_deferred_entry_inc(pool->all_io_ds);
+}
+
 static void issue(struct thin_c *tc, struct bio *bio)
 {
 	struct pool *pool = tc->pool;
@@ -596,13 +607,15 @@ static void process_prepared_discard_pas
 {
 	struct thin_c *tc = m->tc;
 
+	inc_all_io_entry(tc->pool, m->bio);
+	cell_defer_except(tc, m->cell);
+	cell_defer_except(tc, m->cell2);
+
 	if (m->pass_discard)
 		remap_and_issue(tc, m->bio, m->data_block);
 	else
 		bio_endio(m->bio, 0);
 
-	cell_defer_except(tc, m->cell);
-	cell_defer_except(tc, m->cell2);
 	mempool_free(m, tc->pool->mapping_pool);
 }
 
@@ -710,6 +723,7 @@ static void schedule_copy(struct thin_c
 		h->overwrite_mapping = m;
 		m->bio = bio;
 		save_and_set_endio(bio, &m->saved_bi_end_io, overwrite_endio);
+		inc_all_io_entry(pool, bio);
 		remap_and_issue(tc, bio, data_dest);
 	} else {
 		struct dm_io_region from, to;
@@ -779,6 +793,7 @@ static void schedule_zero(struct thin_c
 		h->overwrite_mapping = m;
 		m->bio = bio;
 		save_and_set_endio(bio, &m->saved_bi_end_io, overwrite_endio);
+		inc_all_io_entry(pool, bio);
 		remap_and_issue(tc, bio, data_block);
 	} else {
 		int r;
@@ -961,13 +976,15 @@ static void process_discard(struct thin_
 				wake_worker(pool);
 			}
 		} else {
+			inc_all_io_entry(pool, bio);
+			cell_defer_except(tc, cell);
+			cell_defer_except(tc, cell2);
+
 			/*
 			 * The DM core makes sure that the discard doesn't span
 			 * a block boundary.  So we submit the discard of a
 			 * partial block appropriately.
 			 */
-			cell_defer_except(tc, cell);
-			cell_defer_except(tc, cell2);
 			if ((!lookup_result.shared) && pool->pf.discard_passdown)
 				remap_and_issue(tc, bio, lookup_result.block);
 			else
@@ -1039,8 +1056,9 @@ static void process_shared_bio(struct th
 		struct dm_thin_endio_hook *h = dm_get_mapinfo(bio)->ptr;
 
 		h->shared_read_entry = dm_deferred_entry_inc(pool->shared_read_ds);
-
+		inc_all_io_entry(pool, bio);
 		cell_defer_except(tc, cell);
+
 		remap_and_issue(tc, bio, lookup_result->block);
 	}
 }
@@ -1055,7 +1073,9 @@ static void provision_block(struct thin_
 	 * Remap empty bios (flushes) immediately, without provisioning.
 	 */
 	if (!bio->bi_size) {
+		inc_all_io_entry(tc->pool, bio);
 		cell_defer_except(tc, cell);
+
 		remap_and_issue(tc, bio, 0);
 		return;
 	}
@@ -1110,26 +1130,22 @@ static void process_bio(struct thin_c *t
 	r = dm_thin_find_block(tc->td, block, 1, &lookup_result);
 	switch (r) {
 	case 0:
-		/*
-		 * We can release this cell now.  This thread is the only
-		 * one that puts bios into a cell, and we know there were
-		 * no preceding bios.
-		 */
-		/*
-		 * TODO: this will probably have to change when discard goes
-		 * back in.
-		 */
-		cell_defer_except(tc, cell);
-
-		if (lookup_result.shared)
+		if (lookup_result.shared) {
 			process_shared_bio(tc, bio, block, &lookup_result);
-		else
+			cell_defer_except(tc, cell);
+		} else {
+			inc_all_io_entry(tc->pool, bio);
+			cell_defer_except(tc, cell);
+
 			remap_and_issue(tc, bio, lookup_result.block);
+		}
 		break;
 
 	case -ENODATA:
 		if (bio_data_dir(bio) == READ && tc->origin_dev) {
+			inc_all_io_entry(tc->pool, bio);
 			cell_defer_except(tc, cell);
+
 			remap_to_origin_and_issue(tc, bio);
 		} else
 			provision_block(tc, bio, block, cell);
@@ -1155,8 +1171,10 @@ static void process_bio_read_only(struct
 	case 0:
 		if (lookup_result.shared && (rw == WRITE) && bio->bi_size)
 			bio_io_error(bio);
-		else
+		else {
+			inc_all_io_entry(tc->pool, bio);
 			remap_and_issue(tc, bio, lookup_result.block);
+		}
 		break;
 
 	case -ENODATA:
@@ -1166,6 +1184,7 @@ static void process_bio_read_only(struct
 		}
 
 		if (tc->origin_dev) {
+			inc_all_io_entry(tc->pool, bio);
 			remap_to_origin_and_issue(tc, bio);
 			break;
 		}
@@ -1346,7 +1365,7 @@ static struct dm_thin_endio_hook *thin_h
 
 	h->tc = tc;
 	h->shared_read_entry = NULL;
-	h->all_io_entry = bio->bi_rw & REQ_DISCARD ? NULL : dm_deferred_entry_inc(pool->all_io_ds);
+	h->all_io_entry = NULL;
 	h->overwrite_mapping = NULL;
 
 	return h;
@@ -1363,6 +1382,8 @@ static int thin_bio_map(struct dm_target
 	dm_block_t block = get_bio_block(tc, bio);
 	struct dm_thin_device *td = tc->td;
 	struct dm_thin_lookup_result result;
+	struct dm_bio_prison_cell *cell1, *cell2;
+	struct dm_cell_key key;
 
 	map_context->ptr = thin_hook_bio(tc, bio);
 
@@ -1399,12 +1420,25 @@ static int thin_bio_map(struct dm_target
 			 * shared flag will be set in their case.
 			 */
 			thin_defer_bio(tc, bio);
-			r = DM_MAPIO_SUBMITTED;
-		} else {
-			remap(tc, bio, result.block);
-			r = DM_MAPIO_REMAPPED;
+			return DM_MAPIO_SUBMITTED;
 		}
-		break;
+
+		build_virtual_key(tc->td, block, &key);
+		if (dm_bio_detain(tc->pool->prison, &key, bio, &cell1))
+			return DM_MAPIO_SUBMITTED;
+
+		build_data_key(tc->td, result.block, &key);
+		if (dm_bio_detain(tc->pool->prison, &key, bio, &cell2)) {
+			cell_defer_except(tc, cell1);
+			return DM_MAPIO_SUBMITTED;
+		}
+
+		inc_all_io_entry(tc->pool, bio);
+		cell_defer_except(tc, cell2);
+		cell_defer_except(tc, cell1);
+
+		remap(tc, bio, result.block);
+		return DM_MAPIO_REMAPPED;
 
 	case -ENODATA:
 		if (get_pool_mode(tc->pool) == PM_READ_ONLY) {



  parent reply	other threads:[~2013-01-15 22:35 UTC|newest]

Thread overview: 225+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-15 18:48 [ 000/221] 3.7.3-stable review Greg Kroah-Hartman
2013-01-15 18:48 ` [ 001/221] regulator: wm831x: Set the new rather than old value for DVS VSEL Greg Kroah-Hartman
2013-01-15 18:48 ` [ 002/221] ath5k: fix tx path skb leaks Greg Kroah-Hartman
2013-01-15 18:48 ` [ 003/221] iwlwifi: dont handle masked interrupt Greg Kroah-Hartman
2013-01-15 18:48 ` [ 004/221] iwlwifi: silently ignore fw flaws in Tx path Greg Kroah-Hartman
2013-01-15 18:48 ` [ 005/221] bcma: mips: fix clearing device IRQ Greg Kroah-Hartman
2013-01-15 18:48 ` [ 006/221] rt2x00: Only specify interface combinations if more then one interface is possible Greg Kroah-Hartman
2013-01-15 18:48 ` [ 007/221] s390/kvm: dont announce RRBM support Greg Kroah-Hartman
2013-01-15 18:48 ` [ 008/221] s390/kvm: Fix address space mixup Greg Kroah-Hartman
2013-01-15 18:48 ` [ 009/221] powerpc: Fix CONFIG_RELOCATABLE=y CONFIG_CRASH_DUMP=n build Greg Kroah-Hartman
2013-01-15 18:48 ` [ 010/221] powerpc/vdso: Remove redundant locking in update_vsyscall_tz() Greg Kroah-Hartman
2013-01-15 18:48 ` [ 011/221] powerpc: Add missing NULL terminator to avoid boot panic on PPC40x Greg Kroah-Hartman
2013-01-15 18:48 ` [ 012/221] KVM: PPC: e500: fix allocation size error on g2h_tlb1_map Greg Kroah-Hartman
2013-01-15 18:49 ` [ 013/221] KVM: Fix user memslot overlap check Greg Kroah-Hartman
2013-01-15 18:49 ` [ 014/221] s390/cio: fix pgid reserved check Greg Kroah-Hartman
2013-01-15 18:49 ` [ 015/221] MIPS: Fix poweroff failure when HOTPLUG_CPU configured Greg Kroah-Hartman
2013-01-15 18:49 ` [ 016/221] mm: compaction: fix echo 1 > compact_memory return error issue Greg Kroah-Hartman
2013-01-15 18:49 ` [ 017/221] mm: use aligned zone start for pfn_to_bitidx calculation Greg Kroah-Hartman
2013-01-15 18:49 ` [ 018/221] mm: bootmem: fix free_all_bootmem_core() with odd bitmap alignment Greg Kroah-Hartman
2013-01-15 18:49 ` [ 019/221] ath9k_hw: Enable hw PLL power save for AR9462 Greg Kroah-Hartman
2013-01-15 18:49 ` [ 020/221] Revert "ath9k_hw: Update AR9003 high_power tx gain table" Greg Kroah-Hartman
2013-01-15 18:49 ` [ 021/221] ath9k: ar9003: fix OTP register offsets for AR9340 Greg Kroah-Hartman
2013-01-15 18:49 ` [ 022/221] ath9k_hw: Fix signal strength / channel noise reporting Greg Kroah-Hartman
2013-01-15 18:49 ` [ 023/221] ath9k_hw: Fix RX gain initvals for AR9485 Greg Kroah-Hartman
2013-01-15 18:49 ` [ 024/221] mac80211: introduce IEEE80211_HW_TEARDOWN_AGGR_ON_BAR_FAIL Greg Kroah-Hartman
2013-01-15 18:49 ` [ 025/221] carl9170: fix -EINVAL bailout during init with !CONFIG_MAC80211_MESH Greg Kroah-Hartman
2013-01-15 18:49 ` [ 026/221] firewire: net: Fix handling of fragmented multicast/broadcast packets Greg Kroah-Hartman
2013-01-15 18:49 ` [ 027/221] watchdog: Fix disable/enable regression Greg Kroah-Hartman
2013-01-15 18:49 ` [ 028/221] ASoC: wm8994: Use the same DCS codes for all WM1811 variants Greg Kroah-Hartman
2013-01-15 18:49 ` [ 029/221] ASoC: sigmadsp: Fix endianness conversion issue Greg Kroah-Hartman
2013-01-15 18:49 ` [ 030/221] regulator: s2mps11: Fix ramp delay value shift operation Greg Kroah-Hartman
2013-01-15 18:49 ` [ 031/221] SCSI: mvsas: fix undefined bit shift Greg Kroah-Hartman
2013-01-15 18:49 ` [ 032/221] SCSI: prevent stack buffer overflow in host_reset Greg Kroah-Hartman
2013-01-15 18:49 ` [ 033/221] SCSI: qla2xxx: Properly set result field of bsg_job reply structure for success and failure Greg Kroah-Hartman
2013-01-15 18:49 ` [ 034/221] SCSI: qla2xxx: Test and clear FCPORT_UPDATE_NEEDED atomically Greg Kroah-Hartman
2013-01-15 18:49 ` [ 035/221] SCSI: qla2xxx: Change in setting UNLOADING flag and FC vports logout sequence while unloading qla2xxx driver Greg Kroah-Hartman
2013-01-15 18:49 ` [ 036/221] SCSI: qla2xxx: Free rsp_data even on error in qla2x00_process_loopback() Greg Kroah-Hartman
2013-01-15 18:49 ` [ 037/221] iscsi-target: Fix bug in handling of ExpStatSN ACK during u32 wrap-around Greg Kroah-Hartman
2013-01-17 13:37   ` Ben Hutchings
2013-01-17 16:05     ` Greg Kroah-Hartman
2013-01-15 18:49 ` [ 038/221] iscsi-target: Always send a response before terminating iSCSI connection Greg Kroah-Hartman
2013-01-15 18:49 ` [ 039/221] iscsit: use GFP_ATOMIC under spin lock Greg Kroah-Hartman
2013-01-15 18:49 ` [ 040/221] qla2xxx: Look up LUN for abort requests Greg Kroah-Hartman
2013-01-15 18:49 ` [ 041/221] sata_promise: fix hardreset lockdep error Greg Kroah-Hartman
2013-01-15 18:49 ` [ 042/221] sony-laptop: fix SNC buffer calls when SN06 returns Integers Greg Kroah-Hartman
2013-01-15 18:49 ` [ 043/221] IB/mlx4: Fix spinlock order to avoid lockdep warnings Greg Kroah-Hartman
2013-01-15 18:49 ` [ 044/221] mlx4_core: Fix potential deadlock in mlx4_eq_int() Greg Kroah-Hartman
2013-01-15 18:49 ` [ 045/221] pstore/ram: Fix undefined usage of rounddown_pow_of_two(0) Greg Kroah-Hartman
2013-01-15 18:49 ` [ 046/221] libata: set dma_mode to 0xff in reset Greg Kroah-Hartman
2013-01-15 18:49 ` [ 047/221] libata: fix Null pointer dereference on disk error Greg Kroah-Hartman
2013-01-15 18:49 ` [ 048/221] target/file: Fix 32-bit highmem breakage for SGL -> iovec mapping Greg Kroah-Hartman
2013-01-15 18:49 ` [ 049/221] target/tcm_fc: fix the lockdep warning due to inconsistent lock state Greg Kroah-Hartman
2013-01-15 18:49 ` [ 050/221] sbp-target: fix error path in sbp_make_tpg() Greg Kroah-Hartman
2013-01-15 18:49 ` [ 051/221] mfd: wm8994: Add support for WM1811 rev E Greg Kroah-Hartman
2013-01-15 18:49 ` [ 052/221] mfd: Only unregister platform devices allocated by the mfd core Greg Kroah-Hartman
2013-01-15 18:49 ` [ 053/221] mfd: Remove Unicode Byte Order Marks from da9055 Greg Kroah-Hartman
2013-01-15 18:49 ` [ 054/221] ext4: fix memory leak in ext4_xattr_set_acl()s error path Greg Kroah-Hartman
2013-01-15 18:49 ` [ 055/221] ext4: fix possible use after free with metadata csum Greg Kroah-Hartman
2013-01-15 18:49 ` [ 056/221] mtd cs553x_nand: Initialise ecc.strength before nand_scan() Greg Kroah-Hartman
2013-01-15 18:49 ` [ 057/221] mtd: nand: gpmi: reset BCH earlier, too, to avoid NAND startup problems Greg Kroah-Hartman
2013-01-15 18:49 ` [ 058/221] kbuild: Do not remove vmlinux when cleaning external module Greg Kroah-Hartman
2013-01-15 18:49 ` [ 059/221] OMAP: board-files: fix i2c_bus for tfp410 Greg Kroah-Hartman
2013-01-15 18:49 ` [ 060/221] SUNRPC: Fix validity issues with rpc_pipefs sb->s_fs_info Greg Kroah-Hartman
2013-01-15 18:49 ` [ 061/221] SUNRPC: continue run over clients list on PipeFS event instead of break Greg Kroah-Hartman
2013-01-15 18:49 ` [ 062/221] svcrpc: Revert "sunrpc/cache.h: replace simple_strtoul" Greg Kroah-Hartman
2013-01-15 18:49 ` [ 063/221] SUNRPC: Ensure that we free the rpc_task after cleanups are done Greg Kroah-Hartman
2013-01-15 18:49 ` [ 064/221] SUNRPC: Ensure we release the socket write lock if the rpc_task exits early Greg Kroah-Hartman
2013-01-15 18:49 ` [ 065/221] jffs2: hold erase_completion_lock on exit Greg Kroah-Hartman
2013-01-15 18:49 ` [ 066/221] i2400m: add Intel 6150 device IDs Greg Kroah-Hartman
2013-01-15 18:49 ` [ 067/221] intel-iommu: Free old page tables before creating superpage Greg Kroah-Hartman
2013-01-15 18:49 ` [ 068/221] drm/radeon: stop page faults from hanging the system (v2) Greg Kroah-Hartman
2013-01-15 18:49 ` [ 069/221] drm/radeon/dce32+: use fractional fb dividers for high clocks Greg Kroah-Hartman
2013-01-15 18:49 ` [ 070/221] drm/radeon: fix eDP clk and lane setup for scaled modes Greg Kroah-Hartman
2013-01-15 18:49 ` [ 071/221] drm/radeon: fix amd afusion gpu setup aka sumo v2 Greg Kroah-Hartman
2013-01-15 18:49 ` [ 072/221] drm/radeon: restore modeset late in GPU reset path Greg Kroah-Hartman
2013-01-15 18:50 ` [ 073/221] drm/radeon: dont leave fence blocked process on failed GPU reset Greg Kroah-Hartman
2013-01-15 18:50 ` [ 074/221] drm/radeon: avoid deadlock in pm path when waiting for fence Greg Kroah-Hartman
2013-01-15 18:50 ` [ 075/221] drm/radeon: add WAIT_UNTIL to evergreen VM safe reg list Greg Kroah-Hartman
2013-01-15 18:50 ` [ 076/221] drm/radeon: add connector table for Mac G4 Silver Greg Kroah-Hartman
2013-01-15 18:50 ` [ 077/221] drm/radeon: Properly handle DDC probe for DP bridges Greg Kroah-Hartman
2013-01-15 18:50 ` [ 078/221] drm/nouveau: fix init with agpgart-uninorth Greg Kroah-Hartman
2013-01-15 18:50 ` [ 079/221] drm/i915: make the panel fitter work on pipes B and C on IVB Greg Kroah-Hartman
2013-01-15 18:50 ` [ 080/221] mm: compaction: partially revert capture of suitable high-order page Greg Kroah-Hartman
2013-01-15 18:50 ` [ 081/221] drm/i915: Close race between processing unpin task and queueing the flip Greg Kroah-Hartman
2013-01-15 18:50 ` [ 082/221] drm/i915: Flush outstanding unpin tasks before pageflipping Greg Kroah-Hartman
2013-01-15 18:50 ` [ 083/221] drm/i915: dont disable disconnected outputs Greg Kroah-Hartman
2013-01-15 18:50 ` [ 084/221] drm/i915: fix flags in dma buf exporting Greg Kroah-Hartman
2013-01-15 18:50 ` [ 085/221] drm/prime: drop reference on imported dma-buf come from gem Greg Kroah-Hartman
2013-01-15 18:50 ` [ 086/221] drm: Only evict the blocks required to create the requested hole Greg Kroah-Hartman
2013-01-15 18:50 ` [ 087/221] drm/i915; Only increment the user-pin-count after successfully pinning the bo Greg Kroah-Hartman
2013-01-15 18:50 ` [ 088/221] drm/i915: Revert shrinker changes from "Track unbound pages" Greg Kroah-Hartman
2013-01-15 18:50 ` [ 089/221] RDMA/nes: Fix for crash when registering zero length MR for CQ Greg Kroah-Hartman
2013-01-15 18:50 ` [ 090/221] RDMA/nes: Fix for terminate timer crash Greg Kroah-Hartman
2013-01-15 18:50 ` [ 091/221] dm: disable WRITE SAME Greg Kroah-Hartman
2013-01-15 18:50 ` [ 092/221] dm persistent data: rename node to btree_node Greg Kroah-Hartman
2013-01-15 18:50 ` [ 093/221] dm ioctl: prevent unsafe change to dm_ioctl data_size Greg Kroah-Hartman
2013-01-15 18:50 ` [ 094/221] dm thin: replace dm_cell_release_singleton with cell_defer_except Greg Kroah-Hartman
2013-01-15 18:50 ` [ 095/221] staging: vt6656: [BUG] out of bound array reference in RFbSetPower Greg Kroah-Hartman
2013-01-15 18:50 ` [ 096/221] staging: vt6656: 64 bit fixes: use u32 for QWORD definition Greg Kroah-Hartman
2013-01-15 18:50 ` [ 097/221] staging: vt6656: 64 bit fixes : correct all type sizes Greg Kroah-Hartman
2013-01-15 18:50 ` [ 098/221] staging: vt6656: 64 bit fixes: fix long warning messages Greg Kroah-Hartman
2013-01-15 18:50 ` [ 099/221] staging: vt6656: 64bit fixes: key.c/h change unsigned long to u32 Greg Kroah-Hartman
2013-01-15 18:50 ` [ 100/221] staging: vt6656: 64bit fixes: vCommandTimerWait change calculation of timer Greg Kroah-Hartman
2013-01-15 18:50 ` [ 101/221] hwmon: (lm73} Detect and report i2c bus errors Greg Kroah-Hartman
2013-01-15 18:50 ` [ 102/221] audit: create explicit AUDIT_SECCOMP event type Greg Kroah-Hartman
2013-01-15 18:50 ` [ 103/221] xen/netfront: improve truesize tracking Greg Kroah-Hartman
2013-01-15 18:50 ` [ 104/221] cpuidle / coupled: fix ready counter decrement Greg Kroah-Hartman
2013-01-15 18:50 ` [ 105/221] brcmfmac: fix parsing rsn ie for ap mode Greg Kroah-Hartman
2013-01-15 18:50 ` [ 106/221] video: mxsfb: fix crash when unblanking the display Greg Kroah-Hartman
2013-01-15 18:50 ` [ 107/221] samsung-laptop: Add quirk for broken acpi_video backlight on N250P Greg Kroah-Hartman
2013-01-15 18:50 ` [ 108/221] PM: Move disabling/enabling runtime PM to late suspend/early resume Greg Kroah-Hartman
2013-01-15 18:50 ` [ 109/221] ext4: fix extent tree corruption caused by hole punch Greg Kroah-Hartman
2013-01-15 18:50 ` [ 110/221] ext4: check dioread_nolock on remount Greg Kroah-Hartman
2013-01-15 18:50 ` [ 111/221] jbd2: fix assertion failure in jbd2_journal_flush() Greg Kroah-Hartman
2013-01-15 18:50 ` [ 112/221] ext4: do not try to write superblock on ro remount w/o journal Greg Kroah-Hartman
2013-01-15 18:50 ` [ 113/221] ext4: lock i_mutex when truncating orphan inodes Greg Kroah-Hartman
2013-01-15 18:50 ` [ 114/221] ext4: avoid hang when mounting non-journal filesystems with orphan list Greg Kroah-Hartman
2013-01-15 18:50 ` [ 115/221] ext4: release buffer in failed path in dx_probe() Greg Kroah-Hartman
2013-01-15 18:50 ` [ 116/221] aoe: remove vestigial request queue allocation Greg Kroah-Hartman
2013-01-15 18:50 ` [ 117/221] udf: fix memory leak while allocating blocks during write Greg Kroah-Hartman
2013-01-15 18:50 ` [ 118/221] udf: dont increment lenExtents while writing to a hole Greg Kroah-Hartman
2013-01-15 18:50 ` [ 119/221] ACPI : do not use Lid and Sleep button for S5 wakeup Greg Kroah-Hartman
2013-01-15 18:50 ` [ 120/221] regmap: debugfs: Avoid overflows for very small reads Greg Kroah-Hartman
2013-01-15 18:50 ` [ 121/221] epoll: prevent missed events on EPOLL_CTL_MOD Greg Kroah-Hartman
2013-01-15 18:50 ` [ 122/221] HID: add quirk for Freescale i.MX23 ROM recovery Greg Kroah-Hartman
2013-01-15 18:50 ` [ 123/221] ASoC: arizona: Correct FLL source definitions Greg Kroah-Hartman
2013-01-15 18:50 ` [ 124/221] ASoC: arizona: Do proper shift for setting AIF rate Greg Kroah-Hartman
2013-01-15 18:50 ` [ 125/221] ASoC: arizona: Remove DSP B and left justified AIF modes Greg Kroah-Hartman
2013-01-15 18:50 ` [ 126/221] ASoC: wm2000: Fix sense of speech clarity enable Greg Kroah-Hartman
2013-01-15 18:50 ` [ 127/221] ASoC: wm2200: Fix setting dai format in wm2200_set_fmt Greg Kroah-Hartman
2013-01-15 18:50 ` [ 128/221] ASoC: wm2200: Remove DSP B and left justified AIF modes Greg Kroah-Hartman
2013-01-15 18:50 ` [ 129/221] ASoC: sta529: Fix update register bits in sta529_set_dai_fmt Greg Kroah-Hartman
2013-01-15 18:50 ` [ 130/221] ASoC: pcm: allow backend hardware to be freed in pause state Greg Kroah-Hartman
2013-01-15 18:50 ` [ 131/221] ASoC: wm5100: Remove DSP B and left justified formats Greg Kroah-Hartman
2013-01-15 18:50 ` [ 132/221] udldrmfb: Fix EDID not working with monitors with EDID extension blocks Greg Kroah-Hartman
2013-01-15 18:51 ` [ 133/221] udldrmfb: udl_get_edid: usb_control_msg buffer must not be on the stack Greg Kroah-Hartman
2013-01-15 18:51 ` [ 134/221] udldrmfb: udl_get_edid: drop unneeded i-- Greg Kroah-Hartman
2013-01-15 18:51 ` [ 135/221] vfs: add missing virtual cache flush after editing partial pages Greg Kroah-Hartman
2013-01-15 18:51 ` [ 136/221] Revert "ALSA: hda - Shut up pins at power-saving mode with Conexnat codecs" Greg Kroah-Hartman
2013-01-15 18:51 ` [ 137/221] ALSA: hda - Disable runtime D3 for Intel CPT & co Greg Kroah-Hartman
2013-01-15 18:51 ` [ 138/221] ALSA: pxa27x: fix ac97 cold reset Greg Kroah-Hartman
2013-01-15 18:51 ` [ 139/221] ALSA: pxa27x: fix ac97 warm reset Greg Kroah-Hartman
2013-01-15 18:51 ` [ 140/221] staging: comedi: prevent auto-unconfig of manually configured devices Greg Kroah-Hartman
2013-01-15 18:51 ` [ 141/221] staging: comedi: fix minimum AO period for NI 625x and NI 628x Greg Kroah-Hartman
2013-01-15 18:51 ` [ 142/221] staging: comedi: Kconfig: COMEDI_NI_AT_A2150 should select COMEDI_FC Greg Kroah-Hartman
2013-01-15 18:51 ` [ 143/221] staging: comedi: comedi_test: fix race when cancelling command Greg Kroah-Hartman
2013-01-15 18:51 ` [ 144/221] staging: r8712u: Add new device ID Greg Kroah-Hartman
2013-01-15 18:51 ` [ 145/221] staging: speakup: avoid out-of-range access in synth_init() Greg Kroah-Hartman
2013-01-15 18:51 ` [ 146/221] staging: speakup: avoid out-of-range access in synth_add() Greg Kroah-Hartman
2013-01-15 18:51 ` [ 147/221] staging: zram: factor-out zram_decompress_page() function Greg Kroah-Hartman
2013-01-15 18:51 ` [ 148/221] staging: zram: fix invalid memory references during disk write Greg Kroah-Hartman
2013-01-15 18:51 ` [ 149/221] radeon/kms: force rn50 chip to always report connected on analog output Greg Kroah-Hartman
2013-01-15 18:51 ` [ 150/221] iwlwifi: fix PCIe interrupt handle return value Greg Kroah-Hartman
2013-01-15 18:51 ` [ 151/221] iwlwifi: fix the reclaimed packet tracking upon flush queue Greg Kroah-Hartman
2013-01-15 18:51 ` [ 152/221] mac80211: fix ibss scanning Greg Kroah-Hartman
2013-01-15 18:51 ` [ 153/221] mac80211: fix station destruction in AP/mesh modes Greg Kroah-Hartman
2013-01-15 18:51 ` [ 154/221] mac80211: use del_timer_sync for final sta cleanup timer deletion Greg Kroah-Hartman
2013-01-15 18:51 ` [ 155/221] mwifiex: check wait_event_interruptible return value Greg Kroah-Hartman
2013-01-15 18:51 ` [ 156/221] b43: Fix firmware loading when driver is built into the kernel Greg Kroah-Hartman
2013-01-15 18:51 ` [ 157/221] USB: option: add Nexpring NP10T terminal id Greg Kroah-Hartman
2013-01-15 18:51 ` [ 158/221] USB: option: blacklist network interface on ZTE MF880 Greg Kroah-Hartman
2013-01-15 18:51 ` [ 159/221] USB: option: Add new MEDIATEK PID support Greg Kroah-Hartman
2013-01-15 18:51 ` [ 160/221] USB: option: add Telekom Speedstick LTE II Greg Kroah-Hartman
2013-01-15 18:51 ` [ 161/221] usb: ftdi_sio: Crucible Technologies COMET Caller ID - pid added Greg Kroah-Hartman
2013-01-15 18:51 ` [ 162/221] USB: cdc-acm: Add support for "PSC Scanning, Magellan 800i" Greg Kroah-Hartman
2013-01-15 18:51 ` [ 163/221] usb: gadget: dummy: fix enumeration with g_multi Greg Kroah-Hartman
2013-01-15 18:51 ` [ 164/221] usb: musb: core: print new line in the driver banner again Greg Kroah-Hartman
2013-01-15 18:51 ` [ 165/221] drm/nv17-50: restore fence buffer on resume Greg Kroah-Hartman
2013-01-15 18:51 ` [ 166/221] drm/nouveau: fix blank LVDS screen regression on pre-nv50 cards Greg Kroah-Hartman
2013-01-15 18:51 ` [ 167/221] drm/nouveau: add locking around instobj list operations Greg Kroah-Hartman
2013-01-15 18:51 ` [ 168/221] drm/nouveau/clock: fix support for more than 2 monitors on nve0 Greg Kroah-Hartman
2013-01-15 18:51 ` [ 169/221] drm/nvc0/fb: fix crash when different mutex is used to protect same list Greg Kroah-Hartman
2013-01-15 18:51 ` [ 170/221] USB: Handle auto-transition from hot to warm reset Greg Kroah-Hartman
2013-01-15 18:51 ` [ 171/221] USB: Add device quirk for Microsoft VX700 webcam Greg Kroah-Hartman
2013-01-15 18:51 ` [ 172/221] USB: Ignore xHCI Reset Device status Greg Kroah-Hartman
2013-01-15 18:51 ` [ 173/221] USB: Allow USB 3.0 ports to be disabled Greg Kroah-Hartman
2013-01-15 18:51 ` [ 174/221] USB: Increase reset timeout Greg Kroah-Hartman
2013-01-15 18:51 ` [ 175/221] USB: Ignore port state until reset completes Greg Kroah-Hartman
2013-01-15 18:51 ` [ 176/221] USB: Handle warm reset failure on empty port Greg Kroah-Hartman
2013-01-15 18:51 ` [ 177/221] xhci: Avoid "dead ports", add roothub port polling Greg Kroah-Hartman
2013-01-15 18:51 ` [ 178/221] USB: hub: handle claim of enabled remote wakeup after reset Greg Kroah-Hartman
2013-01-15 18:51 ` [ 179/221] xhci: Handle HS bulk/ctrl endpoints that dont NAK Greg Kroah-Hartman
2013-01-15 18:51 ` [ 180/221] USB: ehci: make debug port in-use detection functional again Greg Kroah-Hartman
2013-01-15 18:51 ` [ 181/221] regulator: max8997: Use uV in voltage_map_desc Greg Kroah-Hartman
2013-01-15 18:51 ` [ 182/221] regulator: max8998: " Greg Kroah-Hartman
2013-01-15 18:51 ` [ 183/221] regulator: max8998: Ensure enough delay time for max8998_set_voltage_buck_time_sel Greg Kroah-Hartman
2013-01-15 18:51 ` [ 184/221] Revert "MIPS: Optimise TLB handlers for MIPS32/64 R2 cores." Greg Kroah-Hartman
2013-01-15 18:51 ` Greg Kroah-Hartman [this message]
2013-01-15 18:51 ` [ 186/221] Revert: "rt2x00: Dont let mac80211 send a BAR when an AMPDU subframe fails" Greg Kroah-Hartman
2013-01-15 18:51 ` [ 187/221] EDAC: Fix kernel panic on module unloading Greg Kroah-Hartman
2013-01-15 18:51 ` [ 188/221] drm/i915: disable cpt phase pointer fdi rx workaround Greg Kroah-Hartman
2013-01-15 18:51 ` [ 189/221] KVM: PPC: 44x: fix DCR read/write Greg Kroah-Hartman
2013-01-15 18:51 ` [ 190/221] libceph: socket can close in any connection state Greg Kroah-Hartman
2013-01-15 18:51 ` [ 191/221] libceph: report connection fault with warning Greg Kroah-Hartman
2013-01-15 18:51 ` [ 192/221] libceph: init osd->o_node in create_osd() Greg Kroah-Hartman
2013-01-15 18:52 ` [ 193/221] libceph: init event->node in ceph_osdc_create_event() Greg Kroah-Hartman
2013-01-15 18:52 ` [ 194/221] libceph: dont use rb_init_node() in ceph_osdc_alloc_request() Greg Kroah-Hartman
2013-01-15 18:52 ` [ 195/221] libceph: register request before unregister linger Greg Kroah-Hartman
2013-01-15 18:52 ` [ 196/221] libceph: move linger requests sooner in kick_requests() Greg Kroah-Hartman
2013-01-15 18:52 ` [ 197/221] libceph: always reset osds when kicking Greg Kroah-Hartman
2013-01-15 18:52 ` [ 198/221] libceph: WARN, dont BUG on unexpected connection states Greg Kroah-Hartman
2013-01-15 18:52 ` [ 199/221] Revert "drm/i915: no lvds quirk for Zotac ZDBOX SD ID12/ID13" Greg Kroah-Hartman
2013-01-15 18:52 ` [ 200/221] libceph: fix protocol feature mismatch failure path Greg Kroah-Hartman
2013-01-15 18:52 ` [ 201/221] libceph: fix osdmap decode error paths Greg Kroah-Hartman
2013-01-15 18:52 ` [ 202/221] libceph: avoid using freed osd in __kick_osd_requests() Greg Kroah-Hartman
2013-01-15 18:52 ` [ 203/221] libceph: remove osdtimeout option Greg Kroah-Hartman
2013-01-15 18:52 ` [ 204/221] ceph: dont reference req after put Greg Kroah-Hartman
2013-01-15 18:52 ` [ 205/221] rbd: fix bug in rbd_dev_id_put() Greg Kroah-Hartman
2013-01-15 18:52 ` [ 206/221] rbd: zero return code in rbd_dev_image_id() Greg Kroah-Hartman
2013-01-15 18:52 ` [ 207/221] rbd: fix read-only option name Greg Kroah-Hartman
2013-01-15 18:52 ` [ 208/221] rbd: increase maximum snapshot name length Greg Kroah-Hartman
2013-01-15 18:52 ` [ 209/221] rbd: remove snapshots on error in rbd_add() Greg Kroah-Hartman
2013-01-15 18:52 ` [ 210/221] rbd: do not allow remove of mounted-on image Greg Kroah-Hartman
2013-01-15 18:52 ` [ 211/221] rbd: get rid of RBD_MAX_SEG_NAME_LEN Greg Kroah-Hartman
2013-01-15 18:52 ` [ 212/221] rbd: remove linger unconditionally Greg Kroah-Hartman
2013-01-15 18:52 ` [ 213/221] ceph: Dont update i_max_size when handling non-auth cap Greg Kroah-Hartman
2013-01-15 18:52 ` [ 214/221] ceph: Fix infinite loop in __wake_requests Greg Kroah-Hartman
2013-01-15 18:52 ` [ 215/221] ceph: Dont add dirty inode to dirty list if caps is in migration Greg Kroah-Hartman
2013-01-15 18:52 ` [ 216/221] ceph: Fix __ceph_do_pending_vmtruncate Greg Kroah-Hartman
2013-01-15 18:52 ` [ 217/221] ceph: call handle_cap_grant() for cap import message Greg Kroah-Hartman
2013-01-15 18:52 ` [ 218/221] libceph: Unlock unprocessed pages in start_read() error path Greg Kroah-Hartman
2013-01-15 18:52 ` [ 219/221] drm/i915: force restore on lid open Greg Kroah-Hartman
2013-01-15 18:52 ` [ 220/221] i915: ensure that VGA plane is disabled Greg Kroah-Hartman
2013-01-15 18:52 ` [ 221/221] drm/i915: Treat crtc->mode.clock == 0 as disabled Greg Kroah-Hartman
2013-01-16  0:06 ` [ 000/221] 3.7.3-stable review Shuah Khan

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=20130115185011.380103235@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=agk@redhat.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox