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
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Waiman Long <waiman.long@hp.com>,
	Dave Chinner <dchinner@redhat.com>,
	Brian Foster <bfoster@redhat.com>,
	Dave Chinner <david@fromorbit.com>
Subject: [PATCH 4.0 016/148] xfs: xfs_attr_inactive leaves inconsistent attr fork state behind
Date: Wed,  3 Jun 2015 21:08:06 +0900	[thread overview]
Message-ID: <20150603114206.069241713@linuxfoundation.org> (raw)
In-Reply-To: <20150603114205.337615117@linuxfoundation.org>

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

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

From: Dave Chinner <dchinner@redhat.com>

commit 6dfe5a049f2d48582050339d2a6b6fda36dfd14c upstream.

xfs_attr_inactive() is supposed to clean up the attribute fork when
the inode is being freed. While it removes attribute fork extents,
it completely ignores attributes in local format, which means that
there can still be active attributes on the inode after
xfs_attr_inactive() has run.

This leads to problems with concurrent inode writeback - the in-core
inode attribute fork is removed without locking on the assumption
that nothing will be attempting to access the attribute fork after a
call to xfs_attr_inactive() because it isn't supposed to exist on
disk any more.

To fix this, make xfs_attr_inactive() completely remove all traces
of the attribute fork from the inode, regardless of it's state.
Further, also remove the in-core attribute fork structure safely so
that there is nothing further that needs to be done by callers to
clean up the attribute fork. This means we can remove the in-core
and on-disk attribute forks atomically.

Also, on error simply remove the in-memory attribute fork. There's
nothing that can be done with it once we have failed to remove the
on-disk attribute fork, so we may as well just blow it away here
anyway.

Reported-by: Waiman Long <waiman.long@hp.com>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/xfs/libxfs/xfs_attr_leaf.c |    8 ++--
 fs/xfs/libxfs/xfs_attr_leaf.h |    2 -
 fs/xfs/xfs_attr_inactive.c    |   83 ++++++++++++++++++++++++------------------
 fs/xfs/xfs_inode.c            |   12 ++----
 4 files changed, 58 insertions(+), 47 deletions(-)

--- a/fs/xfs/libxfs/xfs_attr_leaf.c
+++ b/fs/xfs/libxfs/xfs_attr_leaf.c
@@ -498,8 +498,8 @@ xfs_attr_shortform_add(xfs_da_args_t *ar
  * After the last attribute is removed revert to original inode format,
  * making all literal area available to the data fork once more.
  */
-STATIC void
-xfs_attr_fork_reset(
+void
+xfs_attr_fork_remove(
 	struct xfs_inode	*ip,
 	struct xfs_trans	*tp)
 {
@@ -565,7 +565,7 @@ xfs_attr_shortform_remove(xfs_da_args_t
 	    (mp->m_flags & XFS_MOUNT_ATTR2) &&
 	    (dp->i_d.di_format != XFS_DINODE_FMT_BTREE) &&
 	    !(args->op_flags & XFS_DA_OP_ADDNAME)) {
-		xfs_attr_fork_reset(dp, args->trans);
+		xfs_attr_fork_remove(dp, args->trans);
 	} else {
 		xfs_idata_realloc(dp, -size, XFS_ATTR_FORK);
 		dp->i_d.di_forkoff = xfs_attr_shortform_bytesfit(dp, totsize);
@@ -828,7 +828,7 @@ xfs_attr3_leaf_to_shortform(
 	if (forkoff == -1) {
 		ASSERT(dp->i_mount->m_flags & XFS_MOUNT_ATTR2);
 		ASSERT(dp->i_d.di_format != XFS_DINODE_FMT_BTREE);
-		xfs_attr_fork_reset(dp, args->trans);
+		xfs_attr_fork_remove(dp, args->trans);
 		goto out;
 	}
 
--- a/fs/xfs/libxfs/xfs_attr_leaf.h
+++ b/fs/xfs/libxfs/xfs_attr_leaf.h
@@ -53,7 +53,7 @@ int	xfs_attr_shortform_remove(struct xfs
 int	xfs_attr_shortform_list(struct xfs_attr_list_context *context);
 int	xfs_attr_shortform_allfit(struct xfs_buf *bp, struct xfs_inode *dp);
 int	xfs_attr_shortform_bytesfit(xfs_inode_t *dp, int bytes);
-
+void	xfs_attr_fork_remove(struct xfs_inode *ip, struct xfs_trans *tp);
 
 /*
  * Internal routines when attribute fork size == XFS_LBSIZE(mp).
--- a/fs/xfs/xfs_attr_inactive.c
+++ b/fs/xfs/xfs_attr_inactive.c
@@ -379,23 +379,31 @@ xfs_attr3_root_inactive(
 	return error;
 }
 
+/*
+ * xfs_attr_inactive kills all traces of an attribute fork on an inode. It
+ * removes both the on-disk and in-memory inode fork. Note that this also has to
+ * handle the condition of inodes without attributes but with an attribute fork
+ * configured, so we can't use xfs_inode_hasattr() here.
+ *
+ * The in-memory attribute fork is removed even on error.
+ */
 int
-xfs_attr_inactive(xfs_inode_t *dp)
+xfs_attr_inactive(
+	struct xfs_inode	*dp)
 {
-	xfs_trans_t *trans;
-	xfs_mount_t *mp;
-	int error;
+	struct xfs_trans	*trans;
+	struct xfs_mount	*mp;
+	int			cancel_flags = 0;
+	int			lock_mode = XFS_ILOCK_SHARED;
+	int			error = 0;
 
 	mp = dp->i_mount;
 	ASSERT(! XFS_NOT_DQATTACHED(mp, dp));
 
-	xfs_ilock(dp, XFS_ILOCK_SHARED);
-	if (!xfs_inode_hasattr(dp) ||
-	    dp->i_d.di_aformat == XFS_DINODE_FMT_LOCAL) {
-		xfs_iunlock(dp, XFS_ILOCK_SHARED);
-		return 0;
-	}
-	xfs_iunlock(dp, XFS_ILOCK_SHARED);
+	xfs_ilock(dp, lock_mode);
+	if (!XFS_IFORK_Q(dp))
+		goto out_destroy_fork;
+	xfs_iunlock(dp, lock_mode);
 
 	/*
 	 * Start our first transaction of the day.
@@ -407,13 +415,18 @@ xfs_attr_inactive(xfs_inode_t *dp)
 	 * the inode in every transaction to let it float upward through
 	 * the log.
 	 */
+	lock_mode = 0;
 	trans = xfs_trans_alloc(mp, XFS_TRANS_ATTRINVAL);
 	error = xfs_trans_reserve(trans, &M_RES(mp)->tr_attrinval, 0, 0);
-	if (error) {
-		xfs_trans_cancel(trans, 0);
-		return error;
-	}
-	xfs_ilock(dp, XFS_ILOCK_EXCL);
+	if (error)
+		goto out_cancel;
+
+	lock_mode = XFS_ILOCK_EXCL;
+	cancel_flags = XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT;
+	xfs_ilock(dp, lock_mode);
+
+	if (!XFS_IFORK_Q(dp))
+		goto out_cancel;
 
 	/*
 	 * No need to make quota reservations here. We expect to release some
@@ -421,29 +434,31 @@ xfs_attr_inactive(xfs_inode_t *dp)
 	 */
 	xfs_trans_ijoin(trans, dp, 0);
 
-	/*
-	 * Decide on what work routines to call based on the inode size.
-	 */
-	if (!xfs_inode_hasattr(dp) ||
-	    dp->i_d.di_aformat == XFS_DINODE_FMT_LOCAL) {
-		error = 0;
-		goto out;
+	/* invalidate and truncate the attribute fork extents */
+	if (dp->i_d.di_aformat != XFS_DINODE_FMT_LOCAL) {
+		error = xfs_attr3_root_inactive(&trans, dp);
+		if (error)
+			goto out_cancel;
+
+		error = xfs_itruncate_extents(&trans, dp, XFS_ATTR_FORK, 0);
+		if (error)
+			goto out_cancel;
 	}
-	error = xfs_attr3_root_inactive(&trans, dp);
-	if (error)
-		goto out;
 
-	error = xfs_itruncate_extents(&trans, dp, XFS_ATTR_FORK, 0);
-	if (error)
-		goto out;
+	/* Reset the attribute fork - this also destroys the in-core fork */
+	xfs_attr_fork_remove(dp, trans);
 
 	error = xfs_trans_commit(trans, XFS_TRANS_RELEASE_LOG_RES);
-	xfs_iunlock(dp, XFS_ILOCK_EXCL);
-
+	xfs_iunlock(dp, lock_mode);
 	return error;
 
-out:
-	xfs_trans_cancel(trans, XFS_TRANS_RELEASE_LOG_RES|XFS_TRANS_ABORT);
-	xfs_iunlock(dp, XFS_ILOCK_EXCL);
+out_cancel:
+	xfs_trans_cancel(trans, cancel_flags);
+out_destroy_fork:
+	/* kill the in-core attr fork before we drop the inode lock */
+	if (dp->i_afp)
+		xfs_idestroy_fork(dp, XFS_ATTR_FORK);
+	if (lock_mode)
+		xfs_iunlock(dp, lock_mode);
 	return error;
 }
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -1889,21 +1889,17 @@ xfs_inactive(
 	/*
 	 * If there are attributes associated with the file then blow them away
 	 * now.  The code calls a routine that recursively deconstructs the
-	 * attribute fork.  We need to just commit the current transaction
-	 * because we can't use it for xfs_attr_inactive().
+	 * attribute fork. If also blows away the in-core attribute fork.
 	 */
-	if (ip->i_d.di_anextents > 0) {
-		ASSERT(ip->i_d.di_forkoff != 0);
-
+	if (XFS_IFORK_Q(ip)) {
 		error = xfs_attr_inactive(ip);
 		if (error)
 			return;
 	}
 
-	if (ip->i_afp)
-		xfs_idestroy_fork(ip, XFS_ATTR_FORK);
-
+	ASSERT(!ip->i_afp);
 	ASSERT(ip->i_d.di_anextents == 0);
+	ASSERT(ip->i_d.di_forkoff == 0);
 
 	/*
 	 * Free the inode.



  parent reply	other threads:[~2015-06-03 13:01 UTC|newest]

Thread overview: 148+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-03 12:07 [PATCH 4.0 000/148] 4.0.5-stable review Greg Kroah-Hartman
2015-06-03 12:07 ` [PATCH 4.0 001/148] mnt: Fail collect_mounts when applied to unmounted mounts Greg Kroah-Hartman
2015-06-03 12:07 ` [PATCH 4.0 002/148] fs_pin: Allow for the possibility that m_list or s_list go unused Greg Kroah-Hartman
2015-06-03 12:07 ` [PATCH 4.0 003/148] iommu/amd: Fix bug in put_pasid_state_wait Greg Kroah-Hartman
2015-06-03 12:07 ` [PATCH 4.0 004/148] iommu/arm-smmu: Fix sign-extension of upstream bus addresses at stage 1 Greg Kroah-Hartman
2015-06-03 12:07 ` [PATCH 4.0 005/148] Revert "KVM: x86: drop fpu_activate hook" Greg Kroah-Hartman
2015-06-03 12:07 ` [PATCH 4.0 006/148] x86/mce: Fix MCE severity messages Greg Kroah-Hartman
2015-06-03 12:07 ` [PATCH 4.0 007/148] x86/fpu: Disable XSAVES* support for now Greg Kroah-Hartman
2015-06-03 12:07 ` [PATCH 4.0 008/148] KVM: MMU: fix CR4.SMEP=1, CR0.WP=0 with shadow pages Greg Kroah-Hartman
2015-06-03 12:07 ` [PATCH 4.0 009/148] KVM: MMU: fix smap permission check Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 010/148] kvm: fix crash in kvm_vcpu_reload_apic_access_page Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 011/148] KVM: MMU: fix SMAP virtualization Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 012/148] kvm/fpu: Enable eager restore kvm FPU for MPX Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 013/148] ktime: Fix ktime_divns to do signed division Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 014/148] fs, omfs: add NULL terminator in the end up the token list Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 015/148] omfs: fix sign confusion for bitmap loop counter Greg Kroah-Hartman
2015-06-03 12:08 ` Greg Kroah-Hartman [this message]
2015-06-03 12:08 ` [PATCH 4.0 017/148] xfs: xfs_iozero can return positive errno Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 018/148] lguest: fix out-by-one error in address checking Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 019/148] ovl: dont remove non-empty opaque directory Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 020/148] ovl: mount read-only if workdir cant be created Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 021/148] mfd: da9052: Fix broken regulator probe Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 022/148] libceph: request a new osdmap if lingering request maps to no osd Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 023/148] Revert "libceph: clear r_req_lru_item in __unregister_linger_request()" Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 024/148] Btrfs: fix racy system chunk allocation when setting block group ro Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 025/148] xen/events: dont bind non-percpu VIRQs with percpu chip Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 026/148] hwmon: (ntc_thermistor) Ensure iio channel is of type IIO_VOLTAGE Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 027/148] iio/axp288_adc: add missing channel info mask Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 028/148] iio:st_sensors: Fix oops when probing SPI devices Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 029/148] iio: light: hid-sensor-prox: Fix modifier Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 030/148] iio: pressure: hid-sensor-press: " Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 031/148] iio: adc: spmi-vadc: Fix overflow in output value normalization Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 032/148] iio: adc: cc10001: Fix the channel number mapping Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 033/148] iio: adc: cc10001: Fix incorrect use of power-up/power-down register Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 034/148] iio: adc: cc10001: Add delay before setting START bit Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 035/148] iio: adc: cc10001: Fix regulator_get_voltage() return value check Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 036/148] iio: adc: xilinx: Fix register addresses Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 037/148] iio: adc: xilinx: Fix "vccaux" channel .address Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 038/148] iio: adc: xilinx: Fix VREFP scale Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 039/148] iio: adc: xilinx: Fix VREFN sign Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 040/148] hwmon: (tmp401) Do not auto-detect chip on I2C address 0x37 Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 041/148] hwmon: (nct6775) Add missing sysfs attribute initialization Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 042/148] hwmon: (nct6683) " Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 043/148] clk: exynos5420: Restore GATE_BUS_TOP on suspend Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 044/148] clk: add missing lock when call clk_core_enable in clk_set_parent Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 045/148] brcmfmac: avoid null pointer access when brcmf_msgbuf_get_pktid() fails Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 046/148] lib: Fix strnlen_user() to not touch memory after specified maximum Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 047/148] d_walk() might skip too much Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 048/148] module: Call module notifier on failure after complete_formation() Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 049/148] ALSA: usb-audio: Add quirk for MS LifeCam Studio Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 050/148] ALSA: hda - Add Conexant codecs CX20721, CX20722, CX20723 and CX20724 Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 051/148] ALSA: hda - Add headphone quirk for Lifebook E752 Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 052/148] ALSA: hda - Add headset mic quirk for Dell Inspiron 5548 Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 053/148] ALSA: hda/realtek - ALC292 dock fix for Thinkpad L450 Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 054/148] ALSA: usb-audio: Add quirk for MS LifeCam HD-3000 Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 056/148] ALSA: hda - Fix noise on AMD radeon 290x controller Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 057/148] ASoC: mc13783: Fix wrong mask value used in mc13xxx_reg_rmw() calls Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 058/148] ASoC: uda1380: Avoid accessing i2c bus when codec is disabled Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 059/148] ASoC: dapm: Modify widget stream name according to prefix Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 060/148] ASoC: wm8960: fix "RINPUT3" audio route error Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 061/148] ASoC: wm8994: correct BCLK DIV 348 to 384 Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 062/148] RDMA/core: Fix for parsing netlink string attribute Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 064/148] staging: vt6656: use ieee80211_tx_info to select packet type Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 065/148] staging: vt6655: device_free_tx_buf use only ieee80211_tx_status_irqsafe Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 066/148] staging: vt6655: implement IEEE80211_TX_STAT_NOACK_TRANSMITTED Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 067/148] staging: vt6655: Fix 80211 control and management status reporting Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 068/148] staging: vt6655: vnt_tx_packet Correct TX order of OWNED_BY_NIC Greg Kroah-Hartman
2015-06-03 12:08 ` [PATCH 4.0 069/148] staging: vt6655: lock MACvWriteBSSIDAddress Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 070/148] perf/x86/rapl: Enable Broadwell-U RAPL support Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 071/148] target/pscsi: Dont leak scsi_host if hba is VIRTUAL_HOST Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 072/148] xhci: fix isoc endpoint dequeue from advancing too far on transaction error Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 073/148] xhci: Solve full event ring by increasing TRBS_PER_SEGMENT to 256 Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 074/148] xhci: gracefully handle xhci_irq dead device Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 075/148] USB: visor: Match I330 phone more precisely Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 076/148] USB: pl2303: Remove support for Samsung I330 Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 077/148] USB: cp210x: add ID for KCF Technologies PRN device Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 078/148] usb-storage: Add NO_WP_DETECT quirk for Lacie 059f:0651 devices Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 079/148] usb: gadget: configfs: Fix interfaces array NULL-termination Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 080/148] powerpc/mce: fix off by one errors in mce event handling Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 081/148] powerpc: Align TOC to 256 bytes Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 082/148] mmc: atmel-mci: fix bad variable type for clkdiv Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 083/148] tty/n_gsm.c: fix a memory leak when gsmtty is removed Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 084/148] pty: Fix input race when closing Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 085/148] ext4: fix lazytime optimization Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 086/148] ext4: fix NULL pointer dereference when journal restart fails Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 087/148] ext4: check for zero length extent explicitly Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 088/148] jbd2: fix r_count overflows leading to buffer overflow in journal recovery Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 089/148] ahci: avoton port-disable reset-quirk Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 090/148] libata: Add helper to determine when PHY events should be ignored Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 091/148] libata: Ignore spurious PHY event on LPM policy change Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 093/148] arm64: bpf: fix signedness bug in loading 64-bit immediate Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 094/148] rt2x00: add new rt2800usb device DWA 130 Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 095/148] ARM: 8325/1: exynos: move resume code to .text section Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 096/148] gpio: gpio-kempld: Fix get_direction return value Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 097/148] crypto: s390/ghash - Fix incorrect ghash icv buffer handling Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 098/148] mac80211: move WEP tailroom size check Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 099/148] mac80211: dont use napi_gro_receive() outside NAPI context Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 100/148] s390/mm: correct return value of pmd_pfn Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 101/148] sched: Handle priority boosted tasks proper in setscheduler() Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 102/148] sched: always use blk_schedule_flush_plug in io_schedule_out Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 103/148] ARM: 8356/1: mm: handle non-pmd-aligned end of RAM Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 104/148] ARM: EXYNOS: Fix dereference of ERR_PTR returned by of_genpd_get_from_provider Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 106/148] ARM: dts: fix imx27 dtb build rule Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 107/148] ARM: dts: set display clock correctly for exynos4412-trats2 Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 108/148] ARM: fix missing syscall trace exit Greg Kroah-Hartman
2015-06-03 20:07   ` Josh Stone
2015-06-03 12:09 ` [PATCH 4.0 109/148] parisc,metag: Fix crashes due to stack randomization on stack-grows-upwards architectures Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 110/148] gfp: add __GFP_NOACCOUNT Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 111/148] kernfs: do not account ino_ida allocations to memcg Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 112/148] tools/vm: fix page-flags build Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 113/148] mm, numa: really disable NUMA balancing by default on single node machines Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 114/148] nfsd/blocklayout: pretend we can send deviceid notifications Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 115/148] nfsd: fix the check for confirmed openowner in nfs4_preprocess_stateid_op Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 116/148] svcrpc: fix potential GSSX_ACCEPT_SEC_CONTEXT decoding failures Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 117/148] firmware: dmi_scan: Fix ordering of product_uuid Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 118/148] thermal: armada: Update Armada 380 thermal sensor coefficients Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 119/148] md/raid5: dont record new size if resize_stripes fails Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 120/148] md/raid0: fix restore to sector variable in raid0_make_request Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 121/148] Revert "HID: logitech-hidpp: support combo keyboard touchpad TK820" Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 122/148] MIPS: fix FP mode selection in lieu of .MIPS.abiflags data Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 123/148] rtlwifi: rtl8192cu: Fix kernel deadlock Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 124/148] Input: elantech - fix semi-mt protocol for v3 HW Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 125/148] storvsc: Set the SRB flags correctly when no data transfer is needed Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 126/148] sd: Disable support for 256 byte/sector disks Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 127/148] ACPI / init: Fix the ordering of acpi_reserve_resources() Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 128/148] iwlwifi: mvm: clean net-detect info if device was reset during suspend Greg Kroah-Hartman
2015-06-03 12:09 ` [PATCH 4.0 129/148] iwlwifi: mvm: Free fw_status after use to avoid memory leak Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 130/148] iwlwifi: pcie: prevent using unmapped memory in fw monitor Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 131/148] drm/radeon: add new bonaire pci id Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 133/148] drm/radeon: retry dcpd fetch Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 134/148] drm/plane-helper: Adapt cursor hack to transitional helpers Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 135/148] drm/radeon: dont share plls if monitors differ in audio support Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 136/148] drm/radeon/audio: make sure connector is valid in hotplug case Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 137/148] Revert "drm/radeon: only mark audio as connected if the monitor supports it (v3)" Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 139/148] dm: fix casting bug in dm_merge_bvec() Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 140/148] dm: fix reload failure of 0 path multipath mapping on blk-mq devices Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 141/148] drm/amdkfd: Dont report local memory size Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 142/148] vfs: read file_handle only once in handle_to_path Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 143/148] power/reset: at91: fix return value check in at91_reset_platform_probe() Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 144/148] ARC: unbork !LLSC build Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 145/148] UBI: block: Add missing cache flushes Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 146/148] pwm: img: Impose upper and lower timebase steps value Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 147/148] md: fix race when unfreezing sync_action Greg Kroah-Hartman
2015-06-03 12:10 ` [PATCH 4.0 148/148] fs/binfmt_elf.c:load_elf_binary(): return -EINVAL on zero-length mappings Greg Kroah-Hartman
2015-06-03 16:53 ` [PATCH 4.0 000/148] 4.0.5-stable review Shuah Khan
2015-06-04  6:17   ` Greg Kroah-Hartman
2015-06-03 18:16 ` Guenter Roeck
2015-06-04  6:17   ` 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=20150603114206.069241713@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=bfoster@redhat.com \
    --cc=david@fromorbit.com \
    --cc=dchinner@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=waiman.long@hp.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