mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Ben Hutchings <ben@decadent.org.uk>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: akpm@linux-foundation.org, "Miklos Szeredi" <mszeredi@suse.cz>,
	"Maxim Patlasov" <MPatlasov@parallels.com>,
	"Maxim Patlasov" <mpatlasov@parallels.com>
Subject: [PATCH 3.2 050/149] fuse: hotfix truncate_pagecache() issue
Date: Mon, 21 Oct 2013 09:46:28 +0100	[thread overview]
Message-ID: <lsq.1382345188.154304044@decadent.org.uk> (raw)
In-Reply-To: <lsq.1382345187.199780875@decadent.org.uk>

3.2.52-rc1 review patch.  If anyone has any objections, please let me know.

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

From: Maxim Patlasov <MPatlasov@parallels.com>

commit 06a7c3c2781409af95000c60a5df743fd4e2f8b4 upstream.

The way how fuse calls truncate_pagecache() from fuse_change_attributes()
is completely wrong. Because, w/o i_mutex held, we never sure whether
'oldsize' and 'attr->size' are valid by the time of execution of
truncate_pagecache(inode, oldsize, attr->size). In fact, as soon as we
released fc->lock in the middle of fuse_change_attributes(), we completely
loose control of actions which may happen with given inode until we reach
truncate_pagecache. The list of potentially dangerous actions includes
mmap-ed reads and writes, ftruncate(2) and write(2) extending file size.

The typical outcome of doing truncate_pagecache() with outdated arguments
is data corruption from user point of view. This is (in some sense)
acceptable in cases when the issue is triggered by a change of the file on
the server (i.e. externally wrt fuse operation), but it is absolutely
intolerable in scenarios when a single fuse client modifies a file without
any external intervention. A real life case I discovered by fsx-linux
looked like this:

1. Shrinking ftruncate(2) comes to fuse_do_setattr(). The latter sends
FUSE_SETATTR to the server synchronously, but before getting fc->lock ...
2. fuse_dentry_revalidate() is asynchronously called. It sends FUSE_LOOKUP
to the server synchronously, then calls fuse_change_attributes(). The
latter updates i_size, releases fc->lock, but before comparing oldsize vs
attr->size..
3. fuse_do_setattr() from the first step proceeds by acquiring fc->lock and
updating attributes and i_size, but now oldsize is equal to
outarg.attr.size because i_size has just been updated (step 2). Hence,
fuse_do_setattr() returns w/o calling truncate_pagecache().
4. As soon as ftruncate(2) completes, the user extends file size by
write(2) making a hole in the middle of file, then reads data from the hole
either by read(2) or mmap-ed read. The user expects to get zero data from
the hole, but gets stale data because truncate_pagecache() is not executed
yet.

The scenario above illustrates one side of the problem: not truncating the
page cache even though we should. Another side corresponds to truncating
page cache too late, when the state of inode changed significantly.
Theoretically, the following is possible:

1. As in the previous scenario fuse_dentry_revalidate() discovered that
i_size changed (due to our own fuse_do_setattr()) and is going to call
truncate_pagecache() for some 'new_size' it believes valid right now. But
by the time that particular truncate_pagecache() is called ...
2. fuse_do_setattr() returns (either having called truncate_pagecache() or
not -- it doesn't matter).
3. The file is extended either by write(2) or ftruncate(2) or fallocate(2).
4. mmap-ed write makes a page in the extended region dirty.

The result will be the lost of data user wrote on the fourth step.

The patch is a hotfix resolving the issue in a simplistic way: let's skip
dangerous i_size update and truncate_pagecache if an operation changing
file size is in progress. This simplistic approach looks correct for the
cases w/o external changes. And to handle them properly, more sophisticated
and intrusive techniques (e.g. NFS-like one) would be required. I'd like to
postpone it until the issue is well discussed on the mailing list(s).

Changed in v2:
 - improved patch description to cover both sides of the issue.

Signed-off-by: Maxim Patlasov <mpatlasov@parallels.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
[bwh: Backported to 3.2: add the fuse_inode::state field which we didn't have]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
 fs/fuse/dir.c    | 7 ++++++-
 fs/fuse/file.c   | 8 +++++++-
 fs/fuse/fuse_i.h | 2 ++
 fs/fuse/inode.c  | 3 ++-
 4 files changed, 17 insertions(+), 3 deletions(-)

--- a/fs/fuse/dir.c
+++ b/fs/fuse/dir.c
@@ -1282,6 +1282,7 @@ static int fuse_do_setattr(struct dentry
 {
 	struct inode *inode = entry->d_inode;
 	struct fuse_conn *fc = get_fuse_conn(inode);
+	struct fuse_inode *fi = get_fuse_inode(inode);
 	struct fuse_req *req;
 	struct fuse_setattr_in inarg;
 	struct fuse_attr_out outarg;
@@ -1312,8 +1313,10 @@ static int fuse_do_setattr(struct dentry
 	if (IS_ERR(req))
 		return PTR_ERR(req);
 
-	if (is_truncate)
+	if (is_truncate) {
 		fuse_set_nowrite(inode);
+		set_bit(FUSE_I_SIZE_UNSTABLE, &fi->state);
+	}
 
 	memset(&inarg, 0, sizeof(inarg));
 	memset(&outarg, 0, sizeof(outarg));
@@ -1375,12 +1378,14 @@ static int fuse_do_setattr(struct dentry
 		invalidate_inode_pages2(inode->i_mapping);
 	}
 
+	clear_bit(FUSE_I_SIZE_UNSTABLE, &fi->state);
 	return 0;
 
 error:
 	if (is_truncate)
 		fuse_release_nowrite(inode);
 
+	clear_bit(FUSE_I_SIZE_UNSTABLE, &fi->state);
 	return err;
 }
 
--- a/fs/fuse/file.c
+++ b/fs/fuse/file.c
@@ -519,7 +519,8 @@ static void fuse_read_update_size(struct
 	struct fuse_inode *fi = get_fuse_inode(inode);
 
 	spin_lock(&fc->lock);
-	if (attr_ver == fi->attr_version && size < inode->i_size) {
+	if (attr_ver == fi->attr_version && size < inode->i_size &&
+	    !test_bit(FUSE_I_SIZE_UNSTABLE, &fi->state)) {
 		fi->attr_version = ++fc->attr_version;
 		i_size_write(inode, size);
 	}
@@ -881,12 +882,16 @@ static ssize_t fuse_perform_write(struct
 {
 	struct inode *inode = mapping->host;
 	struct fuse_conn *fc = get_fuse_conn(inode);
+	struct fuse_inode *fi = get_fuse_inode(inode);
 	int err = 0;
 	ssize_t res = 0;
 
 	if (is_bad_inode(inode))
 		return -EIO;
 
+	if (inode->i_size < pos + iov_iter_count(ii))
+		set_bit(FUSE_I_SIZE_UNSTABLE, &fi->state);
+
 	do {
 		struct fuse_req *req;
 		ssize_t count;
@@ -921,6 +926,7 @@ static ssize_t fuse_perform_write(struct
 	if (res > 0)
 		fuse_write_update_size(inode, pos);
 
+	clear_bit(FUSE_I_SIZE_UNSTABLE, &fi->state);
 	fuse_invalidate_attr(inode);
 
 	return res > 0 ? res : err;
--- a/fs/fuse/fuse_i.h
+++ b/fs/fuse/fuse_i.h
@@ -103,6 +103,15 @@ struct fuse_inode {
 
 	/** List of writepage requestst (pending or sent) */
 	struct list_head writepages;
+
+	/** Miscellaneous bits describing inode state */
+	unsigned long state;
+};
+
+/** FUSE inode state bits */
+enum {
+	/** An operation changing file size is in progress  */
+	FUSE_I_SIZE_UNSTABLE,
 };
 
 struct fuse_conn;
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -92,6 +92,7 @@ static struct inode *fuse_alloc_inode(st
 	fi->attr_version = 0;
 	fi->writectr = 0;
 	fi->orig_ino = 0;
+	fi->state = 0;
 	INIT_LIST_HEAD(&fi->write_files);
 	INIT_LIST_HEAD(&fi->queued_writes);
 	INIT_LIST_HEAD(&fi->writepages);
@@ -200,7 +201,8 @@ void fuse_change_attributes(struct inode
 	loff_t oldsize;
 
 	spin_lock(&fc->lock);
-	if (attr_version != 0 && fi->attr_version > attr_version) {
+	if ((attr_version != 0 && fi->attr_version > attr_version) ||
+	    test_bit(FUSE_I_SIZE_UNSTABLE, &fi->state)) {
 		spin_unlock(&fc->lock);
 		return;
 	}


  parent reply	other threads:[~2013-10-21  9:20 UTC|newest]

Thread overview: 158+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-21  8:46 [PATCH 3.2 000/149] 3.2.52-rc1 review Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 147/149] ACPI / IPMI: Fix atomic context requirement of ipmi_msg_handler() Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 007/149] 8139cp: Add dma_mapping_error checking Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 040/149] of: Fix missing memory initialization on FDT unflattening Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 011/149] ipv6: Don't depend on per socket memory for neighbour discovery messages Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 082/149] dm-snapshot: fix performance degradation due to small hash size Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 051/149] [media] hdpvr: register the video node at the end of probe Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 048/149] fuse: postpone end_page_writeback() in fuse_writepage_locked() Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 025/149] intel-iommu: Fix leaks in pagetable freeing Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 046/149] drm/radeon: fix handling of variable sized arrays for router objects Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 121/149] perf: Use css_tryget() to avoid propping up css refcount Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 104/149] net: sctp: fix ipv6 ipsec encryption bug in sctp_v6_xmit Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 021/149] libceph: unregister request in __map_request failed and nofail == false Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 003/149] fib_trie: remove potential out of bound access Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 142/149] cciss: fix info leak in cciss_ioctl32_passthru() Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 124/149] m68k: consolidate the vmlinux.lds linker scripts Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 031/149] USB: mos7720: fix big-endian control requests Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 096/149] USB: serial: option: Ignore card reader interface on Huawei E1750 Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 058/149] ARM: PCI: versatile: Fix SMAP register offsets Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 073/149] ASoC: max98095: a couple array underflows Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 118/149] sparc64: Fix not SRA'ed %o5 in 32-bit traced syscall Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 035/149] rt2800: fix wrong TX power compensation Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 061/149] ALSA: hda - Add Toshiba Satellite C870 to MSI blacklist Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 148/149] mm, show_mem: suppress page counts in non-blockable contexts Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 010/149] ipv6: drop packets with multiple fragmentation headers Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 080/149] serial: pch_uart: fix tty-kref leak in dma-rx path Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 009/149] ipv6: remove max_addresses check from ipv6_create_tempaddr Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 044/149] drm/radeon: fix LCD record parsing Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 120/149] kernel-doc: bugfix - multi-line macros Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 056/149] HID: picolcd_core: validate output report details Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 149/149] gianfar: Change default HW Tx queue scheduling mode Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 127/149] powerpc/pseries/lparcfg: Fix possible overflow are more than 1026 Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 005/149] tcp: cubic: fix bug in bictcp_acked() Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 045/149] drm/radeon: fix resume on some rs4xx boards (v2) Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 017/149] HID: hidraw: put old deallocation mechanism in place Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 116/149] sparc64: Remove RWSEM export leftovers Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 107/149] ipv6: udp packets following an UFO enqueued packet need also be handled by UFO Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 039/149] HID: validate HID report id size Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 063/149] [SCSI] sd: Fix potential out-of-bounds access Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 027/149] ath9k: avoid accessing MRC registers on single-chain devices Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 075/149] drm/radeon: fix panel scaling with eDP and LVDS bridges Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 100/149] powerpc/iommu: Use GFP_KERNEL instead of GFP_ATOMIC in iommu_init_table() Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 143/149] xhci: Fix race between ep halt and URB cancellation Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 024/149] powerpc: Handle unaligned ldbrx/stdbrx Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 014/149] tipc: fix lockdep warning during bearer initialization Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 081/149] x86, efi: Don't map Boot Services on i386 Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 125/149] m68k: use non-MMU linker script for ColdFire MMU builds Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 055/149] HID: ntrig: validate feature report details Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 038/149] ACPI / EC: Add ASUSTEK L4R to quirk list in order to validate ECDT Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 049/149] fuse: invalidate inode attributes on xattr modification Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 059/149] drm/i915: try not to lose backlight CBLV precision Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 145/149] ext4: avoid hang when mounting non-journal filesystems with orphan list Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 012/149] net: bridge: convert MLDv2 Query MRC into msecs_to_jiffies for max_delay Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 110/149] bonding: Fix broken promiscuity reference counting issue Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 008/149] tun: signedness bug in tun_get_user() Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 097/149] powerpc: Fix parameter clobber in csum_partial_copy_generic() Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 085/149] drm/i915/dp: increase i2c-over-aux retry interval on AUX DEFER Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 103/149] netpoll: fix NULL pointer dereference in netpoll_cleanup Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 086/149] staging: vt6656: [BUG] main_usb.c oops on device_close move flag earlier Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 074/149] ASoC: 88pm860x: array overflow in snd_soc_put_volsw_2r_st() Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 117/149] sparc64: Fix off by one in trampoline TLB mapping installation loop Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 077/149] Bluetooth: Add support for BCM20702A0 [0b05, 17cb] Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 001/149] htb: fix sign extension bug Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 034/149] mmc: tmio_mmc_dma: fix PIO fallback on SDHI Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 144/149] hwmon: (applesmc) Silence uninitialized warnings Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 132/149] perf: Clarify perf_cpu_context::active_pmu usage by renaming it to ::unique_pmu Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 013/149] ICMPv6: treat dest unreachable codes 5 and 6 as EACCES, not EPROTO Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 019/149] xen-gnt: prevent adding duplicate gnt callbacks Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 068/149] HID: provide a helper for validating hid reports Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 129/149] macvtap: do not zerocopy if iov needs more pages than MAX_SKB_FRAGS Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 078/149] net: usb: cdc_ether: Use wwan interface for Telit modules Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 102/149] net: sctp: fix smatch warning in sctp_send_asconf_del_ip Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 106/149] ip: generate unique IP identificator if local fragmentation is allowed Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 067/149] sched/fair: Fix small race where child->se.parent,cfs_rq might point to invalid ones Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 135/149] fanotify: dont merge permission events Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 133/149] perf: Fix perf_cgroup_switch for sw-events Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 123/149] usb: core: don't try to reset_device() a port that got just disconnected Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 098/149] powerpc: Restore registers on error exit from csum_partial_copy_generic() Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 083/149] x86/reboot: Add quirk to make Dell C6100 use reboot=pci automatically Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 022/149] usb: config->desc.bLength may not exceed amount of data returned by the device Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 047/149] ALSA: hda - hdmi: Fallback to ALSA allocation when selecting CA Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 113/149] ll_temac: Reset dma descriptors indexes on ndo_open Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 091/149] p54usb: add USB ID for Corega WLUSB2GTST USB adapter Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 002/149] net: check net.core.somaxconn sysctl values Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 140/149] [SCSI] iscsi: don't hang in endless loop if no targets present Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 054/149] HID: pantherlord: validate output report details Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 112/149] ipv6 mcast: use in6_dev_put in timer handlers instead of __in6_dev_put Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 136/149] HID: Fix Speedlink VAD Cezanne support for some devices Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 060/149] crypto: api - Fix race condition in larval lookup Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 114/149] esp_scsi: Fix tag state corruption when autosensing Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 122/149] debugfs: debugfs_remove_recursive() must not rely on list_empty(d_subdirs) Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 036/149] usb: xhci: Disable runtime PM suspend for quirky controllers Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 076/149] Bluetooth: Add a new PID/VID 0cf3/e005 for AR3012 Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 128/149] Revert "zram: use zram->lock to protect zram_free_page() in swap free notify path" Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 119/149] sparc32: Fix exit flag passed from traced sys_sigreturn Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 029/149] rculist: list_first_or_null_rcu() should use list_entry_rcu() Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 071/149] HID: validate feature and input report details Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 111/149] ipv4 igmp: use in_dev_put in timer handlers instead of __in_dev_put Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 105/149] resubmit bridge: fix message_age_timer calculation Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 028/149] ASoC: wm8960: Fix PLL register writes Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 134/149] perf tools: Handle JITed code in shared memory Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 087/149] USB: fix PM config symbol in uhci-hcd, ehci-hcd, and xhci-hcd Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 033/149] usb: ehci-mxc: check for pdata before dereferencing Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 126/149] m68knommu: clean up linker script Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 092/149] usb: dwc3: pci: add support for BayTrail Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 108/149] via-rhine: fix VLAN priority field (PCP, IEEE 802.1p) Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 138/149] isofs: Refuse RW mount of the filesystem instead of making it RO Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 089/149] hwmon: (applesmc) Check key count before proceeding Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 041/149] USB: fix build error when CONFIG_PM_SLEEP isn't enabled Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 016/149] inetpeer: fix a race in inetpeer_gc_worker() Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 093/149] usb: dwc3: add support for Merrifield Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 115/149] sparc64: Fix ITLB handler of null page Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 146/149] staging: comedi: ni_65xx: (bug fix) confine insn_bits to one subdevice Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 090/149] rtlwifi: Align private space in rtl_priv struct Ben Hutchings
2013-10-21  8:46 ` Ben Hutchings [this message]
2013-10-21  8:46 ` [PATCH 3.2 079/149] serial: pch_uart: fix tty-kref leak in rx-error path Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 066/149] memcg: fix multiple large threshold notifications Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 072/149] HID: logitech-dj: validate output report details Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 141/149] cpqarray: fix info leak in ida_locked_ioctl() Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 139/149] Revert "sctp: fix call to SCTP_CMD_PROCESS_SACK in sctp_cmd_interpreter()" Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 006/149] ipv6: don't stop backtracking in fib6_lookup_1 if subtree does not match Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 037/149] USB: OHCI: Allow runtime PM without system sleep Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 084/149] drm/radeon: disable tests/benchmarks if accel is disabled Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 053/149] fuse: readdir: check for slash in names Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 020/149] ath9k: always clear ps filter bit on new assoc Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 137/149] HID: usbhid: quirk for N-Trig DuoSense Touch Screen Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 026/149] ath9k: fix rx descriptor related race condition Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 101/149] caif: Add missing braces to multiline if in cfctrl_linkup_request Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 018/149] HID: hidraw: correctly deallocate memory on device disconnect Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 094/149] can: flexcan: fix flexcan_chip_start() on imx6 Ben Hutchings
2013-10-21 10:35   ` Marc Kleine-Budde
2013-10-23 15:04     ` Marc Kleine-Budde
2013-10-24 12:45     ` Ben Hutchings
2013-10-21 11:30   ` Luis Henriques
2013-10-21 11:41     ` Marc Kleine-Budde
2013-10-21  8:46 ` [PATCH 3.2 030/149] USB: mos7720: use GFP_ATOMIC under spinlock Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 109/149] dm9601: fix IFF_ALLMULTI handling Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 065/149] mm/huge_memory.c: fix potential NULL pointer dereference Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 131/149] cgroup: fail if monitored file and event_control are in different cgroup Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 043/149] drm/radeon: update line buffer allocation for dce4.1/5 Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 057/149] HID: check for NULL field when setting values Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 064/149] ocfs2: fix the end cluster offset of FIEMAP Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 052/149] [media] hdpvr: fix iteration over uninitialized lists in hdpvr_probe() Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 088/149] usb/core/devio.c: Don't reject control message to endpoint with wrong direction bit Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 099/149] powerpc/sysfs: Disable writing to PURR in guest mode Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 032/149] staging: comedi: dt282x: dt282x_ai_insn_read() always fails Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 062/149] drm/radeon/atom: workaround vbios bug in transmitter table on rs880 (v2) Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 042/149] drm/edid: add quirk for Medion MD30217PG Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 023/149] USB: cdc-wdm: fix race between interrupt handler and tasklet Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 070/149] HID: LG: validate HID output report details Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 004/149] tcp: cubic: fix overflow error in bictcp_update() Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 015/149] inetpeer: Invalidate the inetpeer tree along with the routing cache Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 069/149] HID: zeroplus: validate output report details Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 095/149] nilfs2: fix issue with race condition of competition between segments for dirty blocks Ben Hutchings
2013-10-21  8:46 ` [PATCH 3.2 130/149] sfc: Fix efx_rx_buf_offset() for recycled pages Ben Hutchings
2013-10-21  9:02 ` [PATCH 3.2 000/149] 3.2.52-rc1 review Ben Hutchings
2013-10-21 15:25 ` Guenter Roeck
2013-10-24 12:32   ` Ben Hutchings

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=lsq.1382345188.154304044@decadent.org.uk \
    --to=ben@decadent.org.uk \
    --cc=MPatlasov@parallels.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mszeredi@suse.cz \
    --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

Powered by JetHome