LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Luis Henriques <luis.henriques@canonical.com>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
	kernel-team@lists.ubuntu.com
Cc: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Luis Henriques <luis.henriques@canonical.com>
Subject: [PATCH 3.16.y-ckt 045/126] nilfs2: fix the nilfs_iget() vs. nilfs_new_inode() races
Date: Tue, 27 Jan 2015 12:15:50 +0000	[thread overview]
Message-ID: <1422361031-19364-46-git-send-email-luis.henriques@canonical.com> (raw)
In-Reply-To: <1422361031-19364-1-git-send-email-luis.henriques@canonical.com>

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

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

From: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>

commit 705304a863cc41585508c0f476f6d3ec28cf7e00 upstream.

Same story as in commit 41080b5a2401 ("nfsd race fixes: ext2") (similar
ext2 fix) except that nilfs2 needs to use insert_inode_locked4() instead
of insert_inode_locked() and a bug of a check for dead inodes needs to
be fixed.

If nilfs_iget() is called from nfsd after nilfs_new_inode() calls
insert_inode_locked4(), nilfs_iget() will wait for unlock_new_inode() at
the end of nilfs_mkdir()/nilfs_create()/etc to unlock the inode.

If nilfs_iget() is called before nilfs_new_inode() calls
insert_inode_locked4(), it will create an in-core inode and read its
data from the on-disk inode.  But, nilfs_iget() will find i_nlink equals
zero and fail at nilfs_read_inode_common(), which will lead it to call
iget_failed() and cleanly fail.

However, this sanity check doesn't work as expected for reused on-disk
inodes because they leave a non-zero value in i_mode field and it
hinders the test of i_nlink.  This patch also fixes the issue by
removing the test on i_mode that nilfs2 doesn't need.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
---
 fs/nilfs2/inode.c | 32 ++++++++++++++++++++++++--------
 fs/nilfs2/namei.c | 15 ++++++++++++---
 2 files changed, 36 insertions(+), 11 deletions(-)

diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c
index d071e7f23de2..31b6b2953c59 100644
--- a/fs/nilfs2/inode.c
+++ b/fs/nilfs2/inode.c
@@ -49,6 +49,8 @@ struct nilfs_iget_args {
 	int for_gc;
 };
 
+static int nilfs_iget_test(struct inode *inode, void *opaque);
+
 void nilfs_inode_add_blocks(struct inode *inode, int n)
 {
 	struct nilfs_root *root = NILFS_I(inode)->i_root;
@@ -348,6 +350,17 @@ const struct address_space_operations nilfs_aops = {
 	.is_partially_uptodate  = block_is_partially_uptodate,
 };
 
+static int nilfs_insert_inode_locked(struct inode *inode,
+				     struct nilfs_root *root,
+				     unsigned long ino)
+{
+	struct nilfs_iget_args args = {
+		.ino = ino, .root = root, .cno = 0, .for_gc = 0
+	};
+
+	return insert_inode_locked4(inode, ino, nilfs_iget_test, &args);
+}
+
 struct inode *nilfs_new_inode(struct inode *dir, umode_t mode)
 {
 	struct super_block *sb = dir->i_sb;
@@ -383,7 +396,7 @@ struct inode *nilfs_new_inode(struct inode *dir, umode_t mode)
 	if (S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode)) {
 		err = nilfs_bmap_read(ii->i_bmap, NULL);
 		if (err < 0)
-			goto failed_bmap;
+			goto failed_after_creation;
 
 		set_bit(NILFS_I_BMAP, &ii->i_state);
 		/* No lock is needed; iget() ensures it. */
@@ -399,21 +412,24 @@ struct inode *nilfs_new_inode(struct inode *dir, umode_t mode)
 	spin_lock(&nilfs->ns_next_gen_lock);
 	inode->i_generation = nilfs->ns_next_generation++;
 	spin_unlock(&nilfs->ns_next_gen_lock);
-	insert_inode_hash(inode);
+	if (nilfs_insert_inode_locked(inode, root, ino) < 0) {
+		err = -EIO;
+		goto failed_after_creation;
+	}
 
 	err = nilfs_init_acl(inode, dir);
 	if (unlikely(err))
-		goto failed_acl; /* never occur. When supporting
+		goto failed_after_creation; /* never occur. When supporting
 				    nilfs_init_acl(), proper cancellation of
 				    above jobs should be considered */
 
 	return inode;
 
- failed_acl:
- failed_bmap:
+ failed_after_creation:
 	clear_nlink(inode);
+	unlock_new_inode(inode);
 	iput(inode);  /* raw_inode will be deleted through
-			 generic_delete_inode() */
+			 nilfs_evict_inode() */
 	goto failed;
 
  failed_ifile_create_inode:
@@ -461,8 +477,8 @@ int nilfs_read_inode_common(struct inode *inode,
 	inode->i_atime.tv_nsec = le32_to_cpu(raw_inode->i_mtime_nsec);
 	inode->i_ctime.tv_nsec = le32_to_cpu(raw_inode->i_ctime_nsec);
 	inode->i_mtime.tv_nsec = le32_to_cpu(raw_inode->i_mtime_nsec);
-	if (inode->i_nlink == 0 && inode->i_mode == 0)
-		return -EINVAL; /* this inode is deleted */
+	if (inode->i_nlink == 0)
+		return -ESTALE; /* this inode is deleted */
 
 	inode->i_blocks = le64_to_cpu(raw_inode->i_blocks);
 	ii->i_flags = le32_to_cpu(raw_inode->i_flags);
diff --git a/fs/nilfs2/namei.c b/fs/nilfs2/namei.c
index 9de78f08989e..0f84b257932c 100644
--- a/fs/nilfs2/namei.c
+++ b/fs/nilfs2/namei.c
@@ -51,9 +51,11 @@ static inline int nilfs_add_nondir(struct dentry *dentry, struct inode *inode)
 	int err = nilfs_add_link(dentry, inode);
 	if (!err) {
 		d_instantiate(dentry, inode);
+		unlock_new_inode(inode);
 		return 0;
 	}
 	inode_dec_link_count(inode);
+	unlock_new_inode(inode);
 	iput(inode);
 	return err;
 }
@@ -182,6 +184,7 @@ out:
 out_fail:
 	drop_nlink(inode);
 	nilfs_mark_inode_dirty(inode);
+	unlock_new_inode(inode);
 	iput(inode);
 	goto out;
 }
@@ -201,11 +204,15 @@ static int nilfs_link(struct dentry *old_dentry, struct inode *dir,
 	inode_inc_link_count(inode);
 	ihold(inode);
 
-	err = nilfs_add_nondir(dentry, inode);
-	if (!err)
+	err = nilfs_add_link(dentry, inode);
+	if (!err) {
+		d_instantiate(dentry, inode);
 		err = nilfs_transaction_commit(dir->i_sb);
-	else
+	} else {
+		inode_dec_link_count(inode);
+		iput(inode);
 		nilfs_transaction_abort(dir->i_sb);
+	}
 
 	return err;
 }
@@ -243,6 +250,7 @@ static int nilfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
 
 	nilfs_mark_inode_dirty(inode);
 	d_instantiate(dentry, inode);
+	unlock_new_inode(inode);
 out:
 	if (!err)
 		err = nilfs_transaction_commit(dir->i_sb);
@@ -255,6 +263,7 @@ out_fail:
 	drop_nlink(inode);
 	drop_nlink(inode);
 	nilfs_mark_inode_dirty(inode);
+	unlock_new_inode(inode);
 	iput(inode);
 out_dir:
 	drop_nlink(dir);
-- 
2.1.4


  parent reply	other threads:[~2015-01-27 12:39 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-27 12:15 [3.16.y-ckt stable] Linux 3.16.7-ckt5 stable review Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 001/126] spi: sh-msiof: Add runtime PM lock in initializing Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 002/126] drm/i915: Don't call intel_prepare_page_flip() multiple times on gen2-4 Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 003/126] x86_64, vdso: Fix the vdso address randomization algorithm Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 004/126] drm/nv4c/mc: disable msi Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 005/126] ASoC: dwc: Ensure FIFOs are flushed to prevent channel swap Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 006/126] x86, vdso: Use asm volatile in __getcpu Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 007/126] video/logo: prevent use of logos after they have been freed Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 008/126] video/fbdev: fix defio's fsync Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 009/126] Add USB_EHCI_EXYNOS to multi_v7_defconfig Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 010/126] SCSI: fix regression in scsi_send_eh_cmnd() Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 011/126] Btrfs: don't delay inode ref updates during log replay Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 012/126] net: ethernet: cpsw: fix hangs with interrupts Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 013/126] ALSA: hda - Fix wrong gpio_dir & gpio_mask hint setups for IDT/STAC codecs Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 014/126] drm/radeon: KV has three PPLLs (v2) Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 015/126] drm/radeon: fix sad_count check for dce3 Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 016/126] drm/radeon: properly filter DP1.2 4k modes on non-DP1.2 hw Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 017/126] drm/radeon: adjust default bapm settings for KV Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 018/126] ACPI / PM: Fix PM initialization for devices that are not present Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 019/126] mm: propagate error from stack expansion even for guard page Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 020/126] ALSA: hda - Add new GPU codec ID 0x10de0072 to snd-hda Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 021/126] vfio-pci: Fix the check on pci device type in vfio_pci_probe() Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 022/126] rpc: fix xdr_truncate_encode to handle buffer ending on page boundary Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 023/126] arm64/efi: add missing call to early_ioremap_reset() Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 024/126] exit: fix race between wait_consider_task() and wait_task_zombie() Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 025/126] mm: prevent endless growth of anon_vma hierarchy Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 026/126] mm: protect set_page_dirty() from ongoing truncation Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 027/126] mm, vmscan: prevent kswapd livelock due to pfmemalloc-throttled process being killed Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 028/126] sched/deadline: Fix migration of SCHED_DEADLINE tasks Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 029/126] sched/deadline: Avoid double-accounting in case of missed deadlines Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 030/126] HID: roccat: potential out of bounds in pyra_sysfs_write_settings() Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 031/126] mm: Don't count the stack guard page towards RLIMIT_STACK Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 032/126] mm: fix corner case in anon_vma endless growing prevention Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 033/126] xen/arm/arm64: introduce xen_arch_need_swiotlb Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 034/126] perf session: Do not fail on processing out of order event Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 035/126] fsnotify: next_i is freed during fsnotify_unmount_inodes Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 036/126] drivers/rtc/rtc-isl12057.c: fix masking of register values Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 037/126] ASoC: eukrea-tlv320: Fix of_node_put() call with uninitialized object Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 038/126] HID: i2c-hid: Do not free buffers in i2c_hid_stop() Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 039/126] ALSA: fireworks: fix an endianness bug for transaction length Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 040/126] mtd: nand: omap: Fix NAND enumeration on 3430 LDP Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 041/126] ocfs2: fix the wrong directory passed to ocfs2_lookup_ino_from_name() when link file Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 042/126] powerpc: Fix bad NULL pointer check in udbg_uart_getc_poll() Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 043/126] HID: add battery quirk for USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO keyboard Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 044/126] ALSA: hda - using uninitialized data Luis Henriques
2015-01-27 12:15 ` Luis Henriques [this message]
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 046/126] scripts/kernel-doc: don't eat struct members with __aligned Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 047/126] ARM: dts: DRA7: wdt: Fix compatible property for watchdog node Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 048/126] ARM: dts: Enable PWM node by default for s3c64xx Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 049/126] ARM: OMAP4: PM: Only do static dependency configuration in omap4_init_static_deps Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 050/126] Revert "ARM: 7830/1: delay: don't bother reporting bogomips in /proc/cpuinfo" Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 051/126] HID: Add a new id 0x501a for Genius MousePen i608X Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 052/126] netfilter: ipset: small potential read beyond the end of buffer Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 053/126] bridge: fix netfilter/NF_BR_LOCAL_OUT for own, locally generated queries Luis Henriques
2015-01-27 12:15 ` [PATCH 3.16.y-ckt 054/126] bcache: Make sure to pass GFP_WAIT to mempool_alloc() Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 055/126] ACPICA: Add new GPE public interface - acpi_mark_gpe_for_wake Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 056/126] ACPI / scan: No implicit wake notification for buttons Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 057/126] gre: fix the inner mac header in nbma tunnel xmit path Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 058/126] netlink: Always copy on mmap TX Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 059/126] netlink: Don't reorder loads/stores before marking mmap netlink frame as available Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 060/126] in6: fix conflict with glibc Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 061/126] tg3: tg3_disable_ints using uninitialized mailbox value to disable interrupts Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 062/126] batman-adv: Unify fragment size calculation Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 063/126] batman-adv: avoid NULL dereferences and fix if check Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 064/126] net: Fix stacked vlan offload features computation Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 065/126] net: Reset secmark when scrubbing packet Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 066/126] net/core: Handle csum for CHECKSUM_COMPLETE VXLAN forwarding Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 067/126] tcp: Do not apply TSO segment limit to non-TSO packets Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 068/126] xen-netback: fixing the propagation of the transmit shaper timeout Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 069/126] alx: fix alx_poll() Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 070/126] team: avoid possible underflow of count_pending value for notify_peers and mcast_rejoin Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 071/126] enic: fix rx skb checksum Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 072/126] netfilter: conntrack: disable generic tracking for known protocols Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 073/126] xen-netfront: Fix handling packets on compound pages with skb_linearize Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 074/126] xen-netfront: use correct linear area after linearizing an skb Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 075/126] usb: musb: stuff leak of struct usb_hcd Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 076/126] usb: gadget: gadgetfs: Free memory allocated by memdup_user() Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 077/126] usb: gadget: udc: atmel: change setting for DMA Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 078/126] [PATCH] usb: gadget: udc: atmel: fix possible IN hang issue Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 079/126] ARM: imx6q: drop unnecessary semicolon Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 080/126] ARM: clk-imx6q: fix video divider for rev T0 1.0 Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 081/126] ARM: dts: imx25: Fix the SPI1 clocks Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 082/126] USB: cp210x: fix ID for production CEL MeshConnect USB Stick Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 083/126] USB: keyspan: fix null-deref at probe Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 084/126] iwlwifi: mvm: fix Rx with both chains Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 085/126] ARM: imx6sx: Set PLL2 as parent of QSPI clocks Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 086/126] ARM: omap5/dra7xx: Fix frequency typos Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 087/126] ARM: omap5/dra7xx: Enable booting secondary CPU in HYP mode Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 088/126] LOCKD: Fix a race when initialising nlmsvc_timeout Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 089/126] NFSv4.1: Fix client id trunking on Linux Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 090/126] ARM: dts: imx51-babbage: Fix ULPI PHY reset modelling Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 091/126] USB: cp210x: add IDs for CEL USB sticks and MeshWorks devices Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 092/126] vhost-scsi: Add missing virtio-scsi -> TCM attribute conversion Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 093/126] USB: qcserial/option: make AT URCs work for Sierra Wireless MC73xx Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 094/126] ARM: dts: berlin: fix io clk and add missing core clk for BG2Q sdhci2 host Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 095/126] ARM: dts: berlin: add broken-cd and set bus width for eMMC in Marvell DMP DT Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 096/126] ARM: dts: berlin: correct BG2Q's SM GPIO location Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 097/126] xhci: Check if slot is already in default state before moving it there Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 098/126] USB: EHCI: fix initialization bug in iso_stream_schedule() Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 099/126] xhci: Add broken-streams quirk for Fresco Logic FL1000G xhci controllers Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 100/126] uas: Add US_FL_NO_ATA_1X for Seagate devices with usb-id 0bc2:a013 Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 101/126] uas: Add US_FL_NO_REPORT_OPCODES for JMicron JMS566 " Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 102/126] uas: Add US_FL_NO_ATA_1X for 2 more Seagate disk enclosures Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 103/126] OHCI: add a quirk for ULi M5237 blocking on reset Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 104/126] mei: clean reset bit before reset Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 105/126] target: Drop arbitrary maximum I/O size limit Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 106/126] usb: gadget: udc: atmel: fix possible oops when unloading module Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 107/126] USB: console: fix uninitialised ldisc semaphore Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 108/126] USB: console: fix potential use after free Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 109/126] mmc: sdhci-pxav3: fix error handling of sdhci_add_host Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 110/126] mmc: sdhci-pxav3: do the mbus window configuration after enabling clocks Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 111/126] mmc: sdhci: Fix sleep in atomic after inserting SD card Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 112/126] clk: at91: keep slow clk enabled to prevent system hang Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 113/126] clk: berlin: bg2q: remove non-exist "smemc" gate clock Luis Henriques
2015-01-27 12:16 ` [PATCH 3.16.y-ckt 114/126] drivers: net: cpsw: fix multicast flush in dual emac mode Luis Henriques
2015-01-27 12:17 ` [PATCH 3.16.y-ckt 115/126] usb: dwc3: gadget: Fix TRB preparation during SG Luis Henriques
2015-01-27 12:17 ` [PATCH 3.16.y-ckt 116/126] usb: dwc3: gadget: Stop TRB preparation after limit is reached Luis Henriques
2015-01-27 12:17 ` [PATCH 3.16.y-ckt 117/126] ftrace/jprobes/x86: Fix conflict between jprobes and function graph tracing Luis Henriques
2015-01-27 12:17 ` [PATCH 3.16.y-ckt 118/126] reset: sunxi: fix spinlock initialization Luis Henriques
2015-01-27 12:17 ` [PATCH 3.16.y-ckt 119/126] clk: Don't try to use a struct clk* after it could have been freed Luis Henriques
2015-01-27 12:17 ` [PATCH 3.16.y-ckt 120/126] tcm_loop: Fixup tag handling Luis Henriques
2015-01-27 12:17 ` [PATCH 3.16.y-ckt 121/126] net: prevent of emerging cross-namespace symlinks Luis Henriques
2015-01-27 12:17 ` [PATCH 3.16.y-ckt 122/126] net: fix creation adjacent device symlinks Luis Henriques
2015-01-27 12:17 ` [PATCH 3.16.y-ckt 123/126] drm/i915: Evict CS TLBs between batches Luis Henriques
2015-01-27 12:17 ` [PATCH 3.16.y-ckt 124/126] Revert "swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single" Luis Henriques
2015-01-27 12:17 ` [PATCH 3.16.y-ckt 125/126] ARM: dts: dra7-evm: fix qspi device tree partition size Luis Henriques
2015-01-27 12:17 ` [PATCH 3.16.y-ckt 126/126] ARM: shmobile: sh73a0 legacy: Set .control_parent for all irqpin instances Luis Henriques

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=1422361031-19364-46-git-send-email-luis.henriques@canonical.com \
    --to=luis.henriques@canonical.com \
    --cc=akpm@linux-foundation.org \
    --cc=kernel-team@lists.ubuntu.com \
    --cc=konishi.ryusuke@lab.ntt.co.jp \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=viro@zeniv.linux.org.uk \
    --subject='Re: [PATCH 3.16.y-ckt 045/126] nilfs2: fix the nilfs_iget() vs. nilfs_new_inode() races' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).