All of lore.kernel.org
 help / color / mirror / Atom feed
From: lizf@kernel.org
To: stable@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
	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>,
	Zefan Li <lizefan@huawei.com>
Subject: [PATCH 3.4 149/176] nilfs2: fix deadlock of segment constructor over I_SYNC flag
Date: Thu,  9 Apr 2015 16:46:37 +0800	[thread overview]
Message-ID: <1428569224-23820-149-git-send-email-lizf@kernel.org> (raw)
In-Reply-To: <1428569028-23762-1-git-send-email-lizf@kernel.org>

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

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

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


commit 7ef3ff2fea8bf5e4a21cef47ad87710a3d0fdb52 upstream.

Nilfs2 eventually hangs in a stress test with fsstress program.  This
issue was caused by the following deadlock over I_SYNC flag between
nilfs_segctor_thread() and writeback_sb_inodes():

  nilfs_segctor_thread()
    nilfs_segctor_thread_construct()
      nilfs_segctor_unlock()
        nilfs_dispose_list()
          iput()
            iput_final()
              evict()
                inode_wait_for_writeback()  * wait for I_SYNC flag

  writeback_sb_inodes()
     * set I_SYNC flag on inode->i_state
    __writeback_single_inode()
      do_writepages()
        nilfs_writepages()
          nilfs_construct_dsync_segment()
            nilfs_segctor_sync()
               * wait for completion of segment constructor
    inode_sync_complete()
       * clear I_SYNC flag after __writeback_single_inode() completed

writeback_sb_inodes() calls do_writepages() for dirty inodes after
setting I_SYNC flag on inode->i_state.  do_writepages() in turn calls
nilfs_writepages(), which can run segment constructor and wait for its
completion.  On the other hand, segment constructor calls iput(), which
can call evict() and wait for the I_SYNC flag on
inode_wait_for_writeback().

Since segment constructor doesn't know when I_SYNC will be set, it
cannot know whether iput() will block or not unless inode->i_nlink has a
non-zero count.  We can prevent evict() from being called in iput() by
implementing sop->drop_inode(), but it's not preferable to leave inodes
with i_nlink == 0 for long periods because it even defers file
truncation and inode deallocation.  So, this instead resolves the
deadlock by calling iput() asynchronously with a workqueue for inodes
with i_nlink == 0.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Tested-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Zefan Li <lizefan@huawei.com>
---
 fs/nilfs2/nilfs.h   |  2 --
 fs/nilfs2/segment.c | 44 +++++++++++++++++++++++++++++++++++++++-----
 fs/nilfs2/segment.h |  5 +++++
 3 files changed, 44 insertions(+), 7 deletions(-)

diff --git a/fs/nilfs2/nilfs.h b/fs/nilfs2/nilfs.h
index 250add8..161a10c 100644
--- a/fs/nilfs2/nilfs.h
+++ b/fs/nilfs2/nilfs.h
@@ -128,7 +128,6 @@ enum {
  * @ti_save: Backup of journal_info field of task_struct
  * @ti_flags: Flags
  * @ti_count: Nest level
- * @ti_garbage:	List of inode to be put when releasing semaphore
  */
 struct nilfs_transaction_info {
 	u32			ti_magic;
@@ -137,7 +136,6 @@ struct nilfs_transaction_info {
 				   one of other filesystems has a bug. */
 	unsigned short		ti_flags;
 	unsigned short		ti_count;
-	struct list_head	ti_garbage;
 };
 
 /* ti_magic */
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
index e0a5a18..c49c3b9 100644
--- a/fs/nilfs2/segment.c
+++ b/fs/nilfs2/segment.c
@@ -302,7 +302,6 @@ static void nilfs_transaction_lock(struct super_block *sb,
 	ti->ti_count = 0;
 	ti->ti_save = cur_ti;
 	ti->ti_magic = NILFS_TI_MAGIC;
-	INIT_LIST_HEAD(&ti->ti_garbage);
 	current->journal_info = ti;
 
 	for (;;) {
@@ -329,8 +328,6 @@ static void nilfs_transaction_unlock(struct super_block *sb)
 
 	up_write(&nilfs->ns_segctor_sem);
 	current->journal_info = ti->ti_save;
-	if (!list_empty(&ti->ti_garbage))
-		nilfs_dispose_list(nilfs, &ti->ti_garbage, 0);
 }
 
 static void *nilfs_segctor_map_segsum_entry(struct nilfs_sc_info *sci,
@@ -743,6 +740,15 @@ static void nilfs_dispose_list(struct the_nilfs *nilfs,
 	}
 }
 
+static void nilfs_iput_work_func(struct work_struct *work)
+{
+	struct nilfs_sc_info *sci = container_of(work, struct nilfs_sc_info,
+						 sc_iput_work);
+	struct the_nilfs *nilfs = sci->sc_super->s_fs_info;
+
+	nilfs_dispose_list(nilfs, &sci->sc_iput_queue, 0);
+}
+
 static int nilfs_test_metadata_dirty(struct the_nilfs *nilfs,
 				     struct nilfs_root *root)
 {
@@ -1896,8 +1902,8 @@ static int nilfs_segctor_collect_dirty_files(struct nilfs_sc_info *sci,
 static void nilfs_segctor_drop_written_files(struct nilfs_sc_info *sci,
 					     struct the_nilfs *nilfs)
 {
-	struct nilfs_transaction_info *ti = current->journal_info;
 	struct nilfs_inode_info *ii, *n;
+	int defer_iput = false;
 
 	spin_lock(&nilfs->ns_inode_lock);
 	list_for_each_entry_safe(ii, n, &sci->sc_dirty_files, i_dirty) {
@@ -1908,9 +1914,24 @@ static void nilfs_segctor_drop_written_files(struct nilfs_sc_info *sci,
 		clear_bit(NILFS_I_BUSY, &ii->i_state);
 		brelse(ii->i_bh);
 		ii->i_bh = NULL;
-		list_move_tail(&ii->i_dirty, &ti->ti_garbage);
+		list_del_init(&ii->i_dirty);
+		if (!ii->vfs_inode.i_nlink) {
+			/*
+			 * Defer calling iput() to avoid a deadlock
+			 * over I_SYNC flag for inodes with i_nlink == 0
+			 */
+			list_add_tail(&ii->i_dirty, &sci->sc_iput_queue);
+			defer_iput = true;
+		} else {
+			spin_unlock(&nilfs->ns_inode_lock);
+			iput(&ii->vfs_inode);
+			spin_lock(&nilfs->ns_inode_lock);
+		}
 	}
 	spin_unlock(&nilfs->ns_inode_lock);
+
+	if (defer_iput)
+		schedule_work(&sci->sc_iput_work);
 }
 
 /*
@@ -2577,6 +2598,8 @@ static struct nilfs_sc_info *nilfs_segctor_new(struct super_block *sb,
 	INIT_LIST_HEAD(&sci->sc_segbufs);
 	INIT_LIST_HEAD(&sci->sc_write_logs);
 	INIT_LIST_HEAD(&sci->sc_gc_inodes);
+	INIT_LIST_HEAD(&sci->sc_iput_queue);
+	INIT_WORK(&sci->sc_iput_work, nilfs_iput_work_func);
 	init_timer(&sci->sc_timer);
 
 	sci->sc_interval = HZ * NILFS_SC_DEFAULT_TIMEOUT;
@@ -2603,6 +2626,8 @@ static void nilfs_segctor_write_out(struct nilfs_sc_info *sci)
 		ret = nilfs_segctor_construct(sci, SC_LSEG_SR);
 		nilfs_transaction_unlock(sci->sc_super);
 
+		flush_work(&sci->sc_iput_work);
+
 	} while (ret && retrycount-- > 0);
 }
 
@@ -2627,6 +2652,9 @@ static void nilfs_segctor_destroy(struct nilfs_sc_info *sci)
 		|| sci->sc_seq_request != sci->sc_seq_done);
 	spin_unlock(&sci->sc_state_lock);
 
+	if (flush_work(&sci->sc_iput_work))
+		flag = true;
+
 	if (flag || !nilfs_segctor_confirm(sci))
 		nilfs_segctor_write_out(sci);
 
@@ -2636,6 +2664,12 @@ static void nilfs_segctor_destroy(struct nilfs_sc_info *sci)
 		nilfs_dispose_list(nilfs, &sci->sc_dirty_files, 1);
 	}
 
+	if (!list_empty(&sci->sc_iput_queue)) {
+		nilfs_warning(sci->sc_super, __func__,
+			      "iput queue is not empty\n");
+		nilfs_dispose_list(nilfs, &sci->sc_iput_queue, 1);
+	}
+
 	WARN_ON(!list_empty(&sci->sc_segbufs));
 	WARN_ON(!list_empty(&sci->sc_write_logs));
 
diff --git a/fs/nilfs2/segment.h b/fs/nilfs2/segment.h
index 38a1d00..a48d6de 100644
--- a/fs/nilfs2/segment.h
+++ b/fs/nilfs2/segment.h
@@ -26,6 +26,7 @@
 #include <linux/types.h>
 #include <linux/fs.h>
 #include <linux/buffer_head.h>
+#include <linux/workqueue.h>
 #include <linux/nilfs2_fs.h>
 #include "nilfs.h"
 
@@ -92,6 +93,8 @@ struct nilfs_segsum_pointer {
  * @sc_nblk_inc: Block count of current generation
  * @sc_dirty_files: List of files to be written
  * @sc_gc_inodes: List of GC inodes having blocks to be written
+ * @sc_iput_queue: list of inodes for which iput should be done
+ * @sc_iput_work: work struct to defer iput call
  * @sc_freesegs: array of segment numbers to be freed
  * @sc_nfreesegs: number of segments on @sc_freesegs
  * @sc_dsync_inode: inode whose data pages are written for a sync operation
@@ -135,6 +138,8 @@ struct nilfs_sc_info {
 
 	struct list_head	sc_dirty_files;
 	struct list_head	sc_gc_inodes;
+	struct list_head	sc_iput_queue;
+	struct work_struct	sc_iput_work;
 
 	__u64		       *sc_freesegs;
 	size_t			sc_nfreesegs;
-- 
1.9.1


  parent reply	other threads:[~2015-04-09  9:14 UTC|newest]

Thread overview: 192+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-09  8:43 [PATCH 3.4 000/176] 3.4.107-rc1 review lizf
2015-04-09  8:44 ` [PATCH 3.4 001/176] spi: dw: Fix dynamic speed change lizf
2015-04-09  8:44 ` [PATCH 3.4 002/176] USB: serial: cp210x: add IDs for CEL MeshConnect USB Stick lizf
2015-04-09  8:44 ` [PATCH 3.4 003/176] iio: Fix IIO_EVENT_CODE_EXTRACT_DIR bit mask lizf
2015-04-09  8:44 ` [PATCH 3.4 004/176] usb: serial: ftdi_sio: add PIDs for Matrix Orbital products lizf
2015-04-09  8:44 ` [PATCH 3.4 005/176] USB: keyspan: fix tty line-status reporting lizf
2015-04-09  8:44 ` [PATCH 3.4 006/176] USB: keyspan: fix overrun-error reporting lizf
2015-04-09  8:44 ` [PATCH 3.4 007/176] USB: ssu100: " lizf
2015-04-09  8:44 ` [PATCH 3.4 008/176] SUNRPC: Fix locking around callback channel reply receive lizf
2015-04-09  8:44 ` [PATCH 3.4 009/176] nfsd: Fix slot wake up race in the nfsv4.1 callback code lizf
2015-04-09  8:44 ` [PATCH 3.4 010/176] bnx2fc: do not add shared skbs to the fcoe_rx_list lizf
2015-04-09  8:44 ` [PATCH 3.4 011/176] ARM: 8216/1: xscale: correct auxiliary register in suspend/resume lizf
2015-04-09  8:44 ` [PATCH 3.4 012/176] USB: xhci: don't start a halted endpoint before its new dequeue is set lizf
2015-04-09  8:44 ` [PATCH 3.4 013/176] USB: xhci: Reset a halted endpoint immediately when we encounter a stall lizf
2015-04-09  8:44 ` [PATCH 3.4 014/176] usb: xhci: rework root port wake bits if controller isn't allowed to wakeup lizf
2015-04-09  8:44 ` [PATCH 3.4 015/176] ALSA: hda - Limit 40bit DMA for AMD HDMI controllers lizf
2015-04-09  8:44 ` [PATCH 3.4 016/176] MIPS: Loongson: Make platform serial setup always built-in lizf
2015-04-09  8:44 ` [PATCH 3.4 017/176] usb-quirks: Add reset-resume quirk for MS Wireless Laser Mouse 6000 lizf
2015-04-09  8:44 ` [PATCH 3.4 018/176] Input: xpad - use proper endpoint type lizf
2015-04-09  8:44 ` [PATCH 3.4 019/176] powerpc/pseries: Fix endiannes issue in RTAS call from xmon lizf
2015-04-09  8:44 ` [PATCH 3.4 020/176] drm/i915: Unlock panel even when LVDS is disabled lizf
2015-04-09  8:44 ` [PATCH 3.4 021/176] AHCI: Add DeviceIDs for Sunrise Point-LP SATA controller lizf
2015-04-09  8:44 ` [PATCH 3.4 022/176] sata_fsl: fix error handling of irq_of_parse_and_map lizf
2015-04-09  8:44 ` [PATCH 3.4 023/176] drm/radeon: kernel panic in drm_calc_vbltimestamp_from_scanoutpos with 3.18.0-rc6 lizf
2015-04-09  8:44 ` [PATCH 3.4 024/176] mm: fix swapoff hang after page migration and fork lizf
2015-04-09  8:44 ` [PATCH 3.4 025/176] ahci: disable NCQ on Samsung pci-e SSDs on macbooks lizf
2015-04-09  8:44 ` [PATCH 3.4 026/176] ahci: disable MSI instead of " lizf
2015-04-09  8:44 ` [PATCH 3.4 027/176] ahci: disable MSI on SAMSUNG 0xa800 SSD lizf
2015-04-09  8:44 ` [PATCH 3.4 028/176] i2c: davinci: generate STP always when NACK is received lizf
2015-04-09  8:44 ` [PATCH 3.4 029/176] eCryptfs: Force RO mount when encrypted view is enabled lizf
2015-04-09  8:44 ` [PATCH 3.4 030/176] writeback: Move I_DIRTY_PAGES handling lizf
2015-04-09  8:44 ` [PATCH 3.4 031/176] writeback: fix a subtle race condition in I_DIRTY clearing lizf
2015-04-09  8:44 ` [PATCH 3.4 032/176] usb: renesas_usbhs: gadget: fix NULL pointer dereference in ep_disable() lizf
2015-04-09  8:44 ` [PATCH 3.4 033/176] KVM: s390: flush CPU on load control lizf
2015-04-09 10:17   ` Christian Borntraeger
2015-04-10  1:45     ` Zefan Li
2015-05-04 23:40     ` Ben Hutchings
2015-04-09  8:44 ` [PATCH 3.4 034/176] UBI: Fix invalid vfree() lizf
2015-04-09  8:44 ` [PATCH 3.4 035/176] driver core: Fix unbalanced device reference in drivers_probe lizf
2015-04-09  8:44 ` [PATCH 3.4 036/176] drbd: merge_bvec_fn: properly remap bvm->bi_bdev lizf
2015-04-09  8:44 ` [PATCH 3.4 037/176] PCI: Restore detection of read-only BARs lizf
2015-04-09 13:03   ` Myron Stowe
2015-04-10  1:44     ` Zefan Li
2015-04-09  8:44 ` [PATCH 3.4 038/176] scsi: correct return values for .eh_abort_handler implementations lizf
2015-04-09  8:44 ` [PATCH 3.4 039/176] genhd: check for int overflow in disk_expand_part_tbl() lizf
2015-04-09  8:44 ` [PATCH 3.4 040/176] ASoC: sigmadsp: Refuse to load firmware files with a non-supported version lizf
2015-04-09  8:44 ` [PATCH 3.4 041/176] megaraid_sas: corrected return of wait_event from abort frame path lizf
2015-04-09  8:44 ` [PATCH 3.4 042/176] cdc-acm: memory leak in error case lizf
2015-04-09  8:44 ` [PATCH 3.4 043/176] USB: cdc-acm: check for valid interfaces lizf
2015-04-09  8:44 ` [PATCH 3.4 044/176] mfd: tc6393xb: Fail ohci suspend if full state restore is required lizf
2015-04-09  8:44 ` [PATCH 3.4 045/176] serial: samsung: wait for transfer completion before clock disable lizf
2015-04-09  8:44 ` [PATCH 3.4 046/176] eCryptfs: Remove buggy and unnecessary write in file name decode routine lizf
2015-04-09  8:44 ` [PATCH 3.4 047/176] ath9k_hw: fix hardware queue allocation lizf
2015-04-09  8:44 ` [PATCH 3.4 048/176] ath9k: fix BE/BK queue order lizf
2015-04-09  8:44 ` [PATCH 3.4 049/176] ath5k: fix hardware queue index assignment lizf
2015-04-09  8:44 ` [PATCH 3.4 050/176] iommu/vt-d: Fix an off-by-one bug in __domain_mapping() lizf
2015-04-09  8:44 ` [PATCH 3.4 051/176] drm/vmwgfx: Don't use memory accounting for kernel-side fence objects lizf
2015-04-09  8:45 ` [PATCH 3.4 052/176] drm/vmwgfx: Fix fence event code lizf
2015-04-09  8:45 ` [PATCH 3.4 053/176] hp_accel: Add support for HP ZBook 15 lizf
2015-04-09  8:45 ` [PATCH 3.4 054/176] drm/radeon: check the right ring in radeon_evict_flags() lizf
2015-04-09  8:45 ` [PATCH 3.4 055/176] can: peak_usb: fix memset() usage lizf
2015-04-09  8:45 ` [PATCH 3.4 056/176] can: peak_usb: fix cleanup sequence order in case of error during init lizf
2015-04-09  8:45 ` [PATCH 3.4 057/176] ALSA: usb-audio: Don't resubmit pending URBs at MIDI error recovery lizf
2015-04-09  8:45 ` [PATCH 3.4 058/176] KEYS: Fix stale key registration at error path lizf
2015-04-09  8:45 ` [PATCH 3.4 059/176] Btrfs: fix fs corruption on transaction abort if device supports discard lizf
2015-04-09  8:45 ` [PATCH 3.4 060/176] ncpfs: return proper error from NCP_IOC_SETROOT ioctl lizf
2015-04-09  8:45 ` [PATCH 3.4 061/176] x86_64, switch_to(): Load TLS descriptors before switching DS and ES lizf
2015-04-09  8:45 ` [PATCH 3.4 062/176] genirq: Prevent proc race against freeing of irq descriptors lizf
2015-04-09  8:45 ` [PATCH 3.4 063/176] x86/tls: Disallow unusual TLS segments lizf
2015-04-09  8:45 ` [PATCH 3.4 064/176] x86/tls: Don't validate lm in set_thread_area() after all lizf
2015-04-09  8:45 ` [PATCH 3.4 065/176] storvsc: ring buffer failures may result in I/O freeze lizf
2015-04-09  8:45 ` [PATCH 3.4 066/176] isofs: Fix infinite looping over CE entries lizf
2015-04-09  8:45 ` [PATCH 3.4 067/176] iscsi-target: Fail connection on short sendmsg writes lizf
2015-04-09  8:45 ` [PATCH 3.4 068/176] ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC lizf
2015-04-09  8:45 ` [PATCH 3.4 069/176] ocfs2: fix journal commit deadlock lizf
2015-04-09  8:45 ` [PATCH 3.4 070/176] isofs: Fix unchecked printing of ER records lizf
2015-04-09  8:45 ` [PATCH 3.4 071/176] udf: Verify i_size when loading inode lizf
2015-04-09  8:45 ` [PATCH 3.4 072/176] udf: Verify symlink size before loading it lizf
2015-04-09  8:45 ` [PATCH 3.4 073/176] udf: Check path length when reading symlink lizf
2015-04-09  8:45 ` [PATCH 3.4 074/176] x86_64, vdso: Fix the vdso address randomization algorithm lizf
2015-04-09  8:45 ` [PATCH 3.4 075/176] udf: Check component length before reading it lizf
2015-04-09  8:45 ` [PATCH 3.4 076/176] crypto: af_alg - fix backlog handling lizf
2015-04-09  8:45 ` [PATCH 3.4 077/176] net: Fix stacked vlan offload features computation lizf
2015-04-10  0:49   ` Toshiaki Makita
2015-04-10  1:40     ` Zefan Li
2015-04-09  8:45 ` [PATCH 3.4 078/176] video/logo: prevent use of logos after they have been freed lizf
2015-04-09  8:45 ` [PATCH 3.4 079/176] USB: cp210x: fix ID for production CEL MeshConnect USB Stick lizf
2015-04-09  8:45 ` [PATCH 3.4 080/176] x86, um: actually mark system call tables readonly lizf
2015-04-09  8:45 ` [PATCH 3.4 081/176] ALSA: hda - Fix wrong gpio_dir & gpio_mask hint setups for IDT/STAC codecs lizf
2015-04-09  8:45 ` [PATCH 3.4 082/176] virtio: use dev_to_virtio wrapper in virtio lizf
2015-04-09  8:45 ` [PATCH 3.4 083/176] virtio_pci: defer kfree until release callback lizf
2015-04-09  8:45 ` [PATCH 3.4 084/176] virtio_pci: document why we defer kfree lizf
2015-04-09  8:45 ` [PATCH 3.4 085/176] USB: cp210x: add IDs for CEL USB sticks and MeshWorks devices lizf
2015-04-09  8:45 ` [PATCH 3.4 086/176] mm: propagate error from stack expansion even for guard page lizf
2015-04-09  8:45 ` [PATCH 3.4 087/176] sata_dwc_460ex: fix resource leak on error path lizf
2015-04-09  8:45 ` [PATCH 3.4 088/176] time: settimeofday: Validate the values of tv from user lizf
2015-04-09  8:45 ` [PATCH 3.4 089/176] time: adjtimex: Validate the ADJ_FREQUENCY values lizf
2015-04-09  8:45 ` [PATCH 3.4 090/176] Input: i8042 - reset keyboard to fix Elantech touchpad detection lizf
2015-04-09  8:45 ` [PATCH 3.4 091/176] Input: I8042 - add Acer Aspire 7738 to the nomux list lizf
2015-04-09  8:45 ` [PATCH 3.4 092/176] mac80211: fix multicast LED blinking and counter lizf
2015-04-09  8:45 ` [PATCH 3.4 093/176] mm: prevent endless growth of anon_vma hierarchy lizf
2015-04-09  8:45 ` [PATCH 3.4 094/176] mm: protect set_page_dirty() from ongoing truncation lizf
2015-04-09  8:45 ` [PATCH 3.4 095/176] HID: roccat: potential out of bounds in pyra_sysfs_write_settings() lizf
2015-04-09  8:45 ` [PATCH 3.4 096/176] OHCI: add a quirk for ULi M5237 blocking on reset lizf
2015-04-09  8:45 ` [PATCH 3.4 097/176] USB: console: fix potential use after free lizf
2015-04-09  8:45 ` [PATCH 3.4 098/176] mm: Don't count the stack guard page towards RLIMIT_STACK lizf
2015-04-09  8:45 ` [PATCH 3.4 099/176] mm: fix corner case in anon_vma endless growing prevention lizf
2015-04-09  8:45 ` [PATCH 3.4 100/176] gpio: fix memory and reference leaks in gpiochip_add error path lizf
2015-04-09  8:45 ` [PATCH 3.4 101/176] usb: dwc3: gadget: Stop TRB preparation after limit is reached lizf
2015-04-09  8:45 ` [PATCH 3.4 102/176] ftrace/jprobes/x86: Fix conflict between jprobes and function graph tracing lizf
2015-04-09  8:45 ` [PATCH 3.4 103/176] can: dev: fix crtlmode_supported check lizf
2015-04-09  8:45 ` [PATCH 3.4 104/176] sysfs.h: add ATTRIBUTE_GROUPS() macro lizf
2015-04-09  8:45 ` [PATCH 3.4 105/176] driver core: Introduce device_create_groups lizf
2015-04-09  8:45 ` [PATCH 3.4 106/176] gpio: sysfs: fix gpio-chip device-attribute leak lizf
2015-04-09  8:45 ` [PATCH 3.4 107/176] gpiolib: Refactor gpio_export lizf
2015-04-09  8:45 ` [PATCH 3.4 108/176] gpio: sysfs: fix gpio device-attribute leak lizf
2015-04-09  8:45 ` [PATCH 3.4 109/176] gpio: sysfs: fix gpio attribute-creation race lizf
2015-04-09  8:45 ` [PATCH 3.4 110/176] ALSA: usb-audio: Add mic volume fix quirk for Logitech Webcam C210 lizf
2015-04-09  8:45 ` [PATCH 3.4 111/176] libata: allow sata_sil24 to opt-out of tag ordered submission lizf
2015-04-09  8:46 ` [PATCH 3.4 112/176] scripts/recordmcount.pl: There is no -m32 gcc option on Super-H anymore lizf
2015-04-09  8:46 ` [PATCH 3.4 113/176] libata: prevent HSM state change race between ISR and PIO lizf
2015-04-09  8:46 ` [PATCH 3.4 114/176] x86, hyperv: Mark the Hyper-V clocksource as being continuous lizf
2015-04-09  8:46 ` [PATCH 3.4 115/176] spi: dw: Fix detecting FIFO depth lizf
2015-04-09  9:37   ` Axel Lin
2015-04-10  1:52     ` Zefan Li
2015-04-09  8:46 ` [PATCH 3.4 116/176] spi: dw-mid: fix FIFO size lizf
2015-04-09  8:46 ` [PATCH 3.4 117/176] ASoC: wm8960: Fix capture sample rate from 11250 to 11025 lizf
2015-04-09  8:46 ` [PATCH 3.4 118/176] regulator: core: fix race condition in regulator_put() lizf
2015-04-09  8:46 ` [PATCH 3.4 119/176] powerpc/xmon: Fix another endiannes issue in RTAS call from xmon lizf
2015-04-09  8:46 ` [PATCH 3.4 120/176] nl80211: fix per-station group key get/del and memory leak lizf
2015-04-09  8:46 ` [PATCH 3.4 121/176] usb-storage/SCSI: Add broken_fua blacklist flag lizf
2015-04-09  8:46 ` [PATCH 3.4 122/176] usb-storage/SCSI: blacklist FUA on JMicron 152d:2566 USB-SATA controller lizf
2015-04-09  8:46 ` [PATCH 3.4 123/176] usb-core bInterval quirk lizf
2015-04-09  8:46 ` [PATCH 3.4 124/176] USB: Add OTG PET device to TPL lizf
2015-04-09  8:46 ` [PATCH 3.4 125/176] drm/i915: Only fence tiled region of object lizf
2015-04-09  8:46 ` [PATCH 3.4 126/176] ALSA: seq-dummy: remove deadlock-causing events on close lizf
2015-04-09  8:46 ` [PATCH 3.4 127/176] net: sctp: fix slab corruption from use after free on INIT collisions lizf
2015-04-09  8:46 ` [PATCH 3.4 128/176] ipv6: replacing a rt6_info needs to purge possible propagated rt6_infos too lizf
2015-04-09  8:46 ` [PATCH 3.4 129/176] vm: add VM_FAULT_SIGSEGV handling support lizf
2015-04-09  8:46 ` [PATCH 3.4 130/176] vm: make stack guard page errors return VM_FAULT_SIGSEGV rather than SIGBUS lizf
2015-04-09  8:46 ` [PATCH 3.4 131/176] net: sctp: fix panic on duplicate ASCONF chunks lizf
2015-04-09  8:46 ` [PATCH 3.4 132/176] net: sctp: fix skb_over_panic when receiving malformed " lizf
2015-04-09  8:46 ` [PATCH 3.4 133/176] x86, mm/ASLR: Fix stack randomization on 64-bit systems lizf
2015-04-09  8:46 ` [PATCH 3.4 134/176] KEYS: close race between key lookup and freeing lizf
2015-04-09  8:46 ` [PATCH 3.4 135/176] move d_rcu from overlapping d_child to overlapping d_alias lizf
2015-04-09  8:46 ` [PATCH 3.4 136/176] deal with deadlock in d_walk() lizf
2015-04-09  8:46 ` [PATCH 3.4 137/176] MIPS: IRQ: Fix disable_irq on CPU IRQs lizf
2015-04-09  8:46 ` [PATCH 3.4 138/176] ASoC: atmel_ssc_dai: fix start event for I2S mode lizf
2015-04-09  8:46 ` [PATCH 3.4 139/176] ALSA: ak411x: Fix stall in work callback lizf
2015-04-09  8:46 ` [PATCH 3.4 140/176] lib/checksum.c: fix carry in csum_tcpudp_nofold lizf
2015-04-09 17:44   ` Karl Beldan
2015-04-09 18:20     ` David Miller
2015-04-10  1:42     ` Zefan Li
2015-04-09  8:46 ` [PATCH 3.4 141/176] caif: remove wrong dev_net_set() call lizf
2015-04-09  8:46 ` [PATCH 3.4 142/176] MIPS: Fix kernel lockup or crash after CPU offline/online lizf
2015-04-09  8:46 ` [PATCH 3.4 143/176] gpio: sysfs: fix memory leak in gpiod_export_link lizf
2015-04-09  8:46 ` [PATCH 3.4 144/176] gpio: sysfs: fix memory leak in gpiod_sysfs_set_active_low lizf
2015-04-09  8:46 ` [PATCH 3.4 145/176] MIPS: Fix C0_Pagegrain[IEC] support lizf
2015-04-09  8:46 ` [PATCH 3.4 146/176] net: sctp: fix NULL pointer dereference in af->from_addr_param on malformed packet lizf
2015-04-09  8:46 ` [PATCH 3.4 147/176] net: sctp: fix passing wrong parameter header to param_type2af in sctp_process_param lizf
2015-04-09  8:46 ` [PATCH 3.4 148/176] ASoC: sgtl5000: add delay before first I2C access lizf
2015-04-09  8:46 ` lizf [this message]
2015-04-09  8:46 ` [PATCH 3.4 150/176] Drivers: hv: vmbus: incorrect device name is printed when child device is unregistered lizf
2015-04-09  8:46 ` [PATCH 3.4 151/176] Bluetooth: sort the list of IDs in the source code lizf
2015-04-09  8:46 ` [PATCH 3.4 152/176] Bluetooth: append new supported device to the list [0b05:17d0] lizf
2015-04-09  8:46 ` [PATCH 3.4 153/176] Bluetooth: Add support for Intel bootloader devices lizf
2015-04-09  8:46 ` [PATCH 3.4 154/176] Bluetooth: Ignore isochronous endpoints for Intel USB bootloader lizf
2015-04-09  8:46 ` [PATCH 3.4 155/176] Bluetooth: Add support for Acer [13D3:3432] lizf
2015-04-09  8:46 ` [PATCH 3.4 156/176] Bluetooth: Add support for Broadcom device of Asus Z97-DELUXE motherboard lizf
2015-04-09  8:46 ` [PATCH 3.4 157/176] Add a new PID/VID 0227/0930 for AR3012 lizf
2015-04-09  8:46 ` [PATCH 3.4 158/176] Bluetooth: Add support for Acer [0489:e078] lizf
2015-04-09  8:46 ` [PATCH 3.4 159/176] Bluetooth: ath3k: Add support of MCI 13d3:3408 bt device lizf
2015-04-09  8:46 ` [PATCH 3.4 160/176] Bluetooth: Add USB device 04ca:3010 as Atheros AR3012 lizf
2015-04-09  8:46 ` [PATCH 3.4 161/176] pagemap: do not leak physical addresses to non-privileged userspace lizf
2015-04-09  8:46 ` [PATCH 3.4 162/176] Bluetooth: Fix invalid length check in l2cap_information_rsp() lizf
2015-04-09  8:46 ` [PATCH 3.4 163/176] jfs: fix readdir regression lizf
2015-04-09  8:46 ` [PATCH 3.4 164/176] ipvs: rerouting to local clients is not needed anymore lizf
2015-04-09  8:46 ` [PATCH 3.4 165/176] staging: comedi: cb_pcidas64: fix incorrect AI range code handling lizf
2015-04-09  8:46 ` [PATCH 3.4 166/176] Bluetooth: ath3k: workaround the compatibility issue with xHCI controller lizf
2015-04-09  8:46 ` [PATCH 3.4 167/176] sched/rt: Reduce rq lock contention by eliminating locking of non-feasible target lizf
2015-04-09  8:46 ` [PATCH 3.4 168/176] net:socket: set msg_namelen to 0 if msg_name is passed as NULL in msghdr struct from userland lizf
2015-04-09  8:46 ` [PATCH 3.4 169/176] fsnotify: next_i is freed during fsnotify_unmount_inodes lizf
2015-04-09  8:46 ` [PATCH 3.4 170/176] x86, cpu, amd: Add workaround for family 16h, erratum 793 lizf
2015-04-09  8:46 ` [PATCH 3.4 171/176] s390/3215: fix tty output containing tabs lizf
2015-04-09  8:47 ` [PATCH 3.4 172/176] ntp: Fixup adjtimex freq validation on 32-bit systems lizf
2015-04-09  8:47 ` [PATCH 3.4 173/176] spi: dw: revisit FIFO size detection again lizf
2015-04-09  8:47 ` [PATCH 3.4 174/176] nilfs2: fix deadlock of segment constructor during recovery lizf
2015-04-09  8:47 ` [PATCH 3.4 175/176] net: compat: Update get_compat_msghdr() to match copy_msghdr_from_user() behaviour lizf
2015-04-09  8:47 ` [PATCH 3.4 176/176] mm: fix anon_vma->degree underflow in anon_vma endless growing prevention lizf
2015-04-09 15:20 ` [PATCH 3.4 000/176] 3.4.107-rc1 review Guenter Roeck
2015-04-13  2:01   ` Zefan Li
2015-04-13  4:19     ` Guenter Roeck

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=1428569224-23820-149-git-send-email-lizf@kernel.org \
    --to=lizf@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=konishi.ryusuke@lab.ntt.co.jp \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lizefan@huawei.com \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.