linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [Patch 3.14 stable 00/16] vfs: fix dentry shrink list corruption
@ 2014-11-06 19:37 Cong Wang
  2014-11-06 19:37 ` [Patch 3.14 stable 01/16] fold d_kill() and d_free() Cong Wang
                   ` (16 more replies)
  0 siblings, 17 replies; 23+ messages in thread
From: Cong Wang @ 2014-11-06 19:37 UTC (permalink / raw)
  To: stable; +Cc: viro, gregkh, linux-fsdevel, Cong Wang

On at least 3 different machines, we have seen dentry shrink list corruption
with 3.14 stable kernel (see the end of this email), which I think is
fixed by a set of patches from Al.

This bug is probably introduced by the following commit in 3.12:

	commit dd1f6b2e43a53ee58eb87d5e623cf44e277d005d
	Author: Dave Chinner <dchinner@redhat.com>
	Date:   Wed Aug 28 10:17:55 2013 +1000

	    dcache: remove dentries from LRU before putting on dispose list

since previously we held the per sb lock. It is hard to reproduce this bug,
because it is a race condition which happens when we update two contiguous
dentries on a shrink list. Matt ran some ltp stress tests and doesn't see
any problem with the patched kernel. And, 3.13 needs them too, but we have
no time or resource to backport or test them on 3.13.

The first 7 patches are the original patchset from Al, the rest of patches
are either needed for context or are folllow-up fixes, especially the
last 2 patches. Of course all of them are merged in upstream, see each patch
for details. Note, I don't get any conflict when backporting them to 3.14.

Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Tested-by: Matthew Mullins <mmullins@twopensource.com>

------------->

[45204.957357] ------------[ cut here ]------------
[45204.957370] WARNING: CPU: 6 PID: 26375 at lib/list_debug.c:33
__list_add+0x63/0xa7()
[45204.957373] list_add corruption. prev->next should be next
(ffff880c0205d280), but was ffff880cfa3d9d00. (prev=ffff8807c5ad7c08).
[45204.957375] Modules linked in: cls_basic act_mirred cls_u32 veth
sch_ingress netconsole configfs ipv6 dm_multipath scsi_dh video sbs
sbshc acpi_p
ad acpi_ipmi parport_pc lp parport tcp_diag inet_diag ipmi_devintf sg
iTCO_wdt iTCO_vendor_support dcdbas igb i2c_algo_bit ptp pps_core wmi
ipmi_si sb_edac hed edac_core ipmi_msghandler i2c_i801
 ioatdma i2c_core microcode lpc_ich mfd_core dca shpchp ahci libahci
libata sd_mod scsi_mod
[45204.957421] CPU: 6 PID: 26375 Comm: python2.6 Not tainted 3.14.14 #1
[45204.957423] Hardware name: Dell Inc. PowerEdge C6220/03C9JJ, BIOS
1.2.1 05/27/2013
[45204.957426]  0000000000000000 ffff8807c5ad7ad0 ffffffff814a9b67
ffff8807c5ad7b18
[45204.957453]  ffff8807c5ad7b08 ffffffff8105b901 ffffffff812787ff
ffff8807c5ad7c08
[45204.957459]  ffff880c0205d280 ffff880be8bbc8c0 ffff880850fd3680
ffff8807c5ad7b68
[45204.957465] Call Trace:
[45204.957475]  [<ffffffff814a9b67>] dump_stack+0x45/0x56
[45204.957482]  [<ffffffff8105b901>] warn_slowpath_common+0x7f/0x98
[45204.957486]  [<ffffffff812787ff>] ? __list_add+0x63/0xa7
[45204.957490]  [<ffffffff8105b966>] warn_slowpath_fmt+0x4c/0x4e
[45204.957494]  [<ffffffff812787ff>] __list_add+0x63/0xa7
[45204.957500]  [<ffffffff811630fa>] list_add+0xc/0xe
[45204.957504]  [<ffffffff81163146>] d_shrink_add+0x4a/0x5e
[45204.957509]  [<ffffffff81163b0b>] shrink_dentry_list+0xaa/0xbb
[45204.957513]  [<ffffffff81164485>] shrink_dcache_parent+0x50/0x60
[45204.957520]  [<ffffffff811a5070>] proc_flush_task+0x14c/0x18b
[45204.957526]  [<ffffffff8105c49f>] release_task+0x30/0x36d
[45204.957530]  [<ffffffff8105dd43>] do_exit+0x809/0x8ee
[45204.957537]  [<ffffffff810afa48>] ? __unqueue_futex+0x53/0x56
[45204.957541]  [<ffffffff8105dea2>] do_group_exit+0x44/0x9a
[45204.957548]  [<ffffffff81069cc7>] get_signal_to_deliver+0x44b/0x4bc
[45204.957555]  [<ffffffff8100224f>] do_signal+0x49/0x5d5
[45204.957561]  [<ffffffff811442de>] ? kmem_cache_free+0x100/0x138
[45204.957565]  [<ffffffff8105915f>] ? __mmdrop+0x82/0x89
[45204.957570]  [<ffffffff81002804>] do_notify_resume+0x29/0x65
[45204.957576]  [<ffffffff814b5662>] int_signal+0x12/0x17
[45204.957579] ---[ end trace 0decfbe793859fa2 ]---
[45204.959359] ------------[ cut here ]------------

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2015-06-29 23:56 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-11-06 19:37 [Patch 3.14 stable 00/16] vfs: fix dentry shrink list corruption Cong Wang
2014-11-06 19:37 ` [Patch 3.14 stable 01/16] fold d_kill() and d_free() Cong Wang
2015-05-18 17:44   ` Greg KH
2015-05-21  0:31     ` [PATCH 3.14] " Vinson Lee
2015-05-21  0:31       ` [PATCH] " Vinson Lee
2015-06-29 23:56       ` [PATCH 3.14] " Greg KH
2014-11-06 19:37 ` [Patch 3.14 stable 02/16] fold try_prune_one_dentry() Cong Wang
2014-11-06 19:37 ` [Patch 3.14 stable 03/16] new helper: dentry_free() Cong Wang
2014-11-06 19:37 ` [Patch 3.14 stable 04/16] expand the call of dentry_lru_del() in dentry_kill() Cong Wang
2014-11-06 19:37 ` [Patch 3.14 stable 05/16] dentry_kill(): don't try to remove from shrink list Cong Wang
2014-11-06 19:37 ` [Patch 3.14 stable 06/16] don't remove from shrink list in select_collect() Cong Wang
2014-11-06 19:37 ` [Patch 3.14 stable 07/16] more graceful recovery in umount_collect() Cong Wang
2014-11-06 19:37 ` [Patch 3.14 stable 08/16] dcache: don't need rcu in shrink_dentry_list() Cong Wang
2014-11-06 19:37 ` [Patch 3.14 stable 09/16] lift the "already marked killed" case into shrink_dentry_list() Cong Wang
2014-11-06 19:37 ` [Patch 3.14 stable 10/16] split dentry_kill() Cong Wang
2014-11-06 19:37 ` [Patch 3.14 stable 11/16] expand dentry_kill(dentry, 0) in shrink_dentry_list() Cong Wang
2014-11-06 19:37 ` [Patch 3.14 stable 12/16] shrink_dentry_list(): take parent's ->d_lock earlier Cong Wang
2014-11-06 19:37 ` [Patch 3.14 stable 13/16] dealing with the rest of shrink_dentry_list() livelock Cong Wang
2014-11-06 19:37 ` [Patch 3.14 stable 14/16] dentry_kill() doesn't need the second argument now Cong Wang
2014-11-06 19:37 ` [Patch 3.14 stable 15/16] dcache: add missing lockdep annotation Cong Wang
2014-11-06 19:37 ` [Patch 3.14 stable 16/16] lock_parent: don't step on stale ->d_parent of all-but-freed one Cong Wang
2015-02-03 23:11 ` [Patch 3.14 stable 00/16] vfs: fix dentry shrink list corruption Greg KH
2015-02-04  3:30   ` Cong Wang

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).