linux-kernel.vger.kernel.org archive mirror
 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 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).