From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754708Ab1JaIf4 (ORCPT ); Mon, 31 Oct 2011 04:35:56 -0400 Received: from mailout09.t-online.de ([194.25.134.84]:57801 "EHLO mailout09.t-online.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754421Ab1JaIfz (ORCPT ); Mon, 31 Oct 2011 04:35:55 -0400 Message-ID: <4EAE5DE3.2020205@t-online.de> Date: Mon, 31 Oct 2011 09:35:47 +0100 From: Knut Petersen User-Agent: Mozilla/5.0 (X11; U; Linux i686; de; rv:1.9.2.23) Gecko/20110920 SUSE/3.1.15 Thunderbird/3.1.15 MIME-Version: 1.0 To: linux-kernel@vger.kernel.org CC: reiserfs-devel@vger.kernel.org, Linus Torvalds , Greg KH Subject: [BUG] kernel 3.1.0 possible circular locking dependency detected Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-ID: EG+E4GZpghiETuroFrxrImlzZ9lmAMFZP3dYmoV0dUUC3MNGs9WxxxP-YHPLc6-wXU X-TOI-MSGID: fca47991-86b7-4d19-aa04-38669df422ad Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org After a " rm -r /verybigdir" (about 12G on a 25G reiserfs 3.6partition) I found the following report about a circular locking dependency in kernel 3.1.0 [ 337.064044] [ 337.064046] ======================================================= [ 337.064059] [ INFO: possible circular locking dependency detected ] [ 337.064069] 3.1.0-main #18 [ 337.064074] ------------------------------------------------------- [ 337.064083] rm/4340 is trying to acquire lock: [ 337.064090] (&sb->s_type->i_mutex_key#12/2){+.+.+.}, at: [] xattr_unlink+0x3a/0x6d [ 337.064114] [ 337.064115] but task is already holding lock: [ 337.064123] (&sb->s_type->i_mutex_key#12/3){+.+.+.}, at: [] reiserfs_for_each_xattr+0x9e/0x224 [ 337.064143] [ 337.064144] which lock already depends on the new lock. [ 337.064146] [ 337.064156] [ 337.064157] the existing dependency chain (in reverse order) is: [ 337.064167] [ 337.064168] -> #1 (&sb->s_type->i_mutex_key#12/3){+.+.+.}: [ 337.064184] [] lock_acquire+0x47/0x5e [ 337.064195] [] mutex_lock_nested+0x35/0x26f [ 337.064208] [] open_xa_dir+0x3d/0x150 [ 337.064218] [] xattr_lookup+0x14/0xd0 [ 337.064228] [] reiserfs_xattr_get+0x4c/0x21b [ 337.064238] [] security_get+0x3e/0x46 [ 337.064248] [] reiserfs_getxattr+0x5d/0x7a [ 337.064258] [] cap_inode_need_killpriv+0x1e/0x2d [ 337.064272] [] security_inode_need_killpriv+0xf/0x11 [ 337.064284] [] file_remove_suid+0x27/0x71 [ 337.064296] [] generic_file_splice_write+0x86/0x121 [ 337.064310] [] do_splice_from+0x58/0x62 [ 337.064320] [] direct_splice_actor+0x17/0x1c [ 337.064331] [] splice_direct_to_actor+0xbf/0x16e [ 337.064342] [] do_splice_direct+0x4b/0x62 [ 337.064353] [] do_sendfile+0x159/0x1f1 [ 337.064365] [] sys_sendfile64+0x3f/0x80 [ 337.064375] [] sysenter_do_call+0x12/0x32 [ 337.064388] [ 337.064389] -> #0 (&sb->s_type->i_mutex_key#12/2){+.+.+.}: [ 337.064404] [] __lock_acquire+0xee6/0x1472 [ 337.064416] [] lock_acquire+0x47/0x5e [ 337.064426] [] mutex_lock_nested+0x35/0x26f [ 337.064436] [] xattr_unlink+0x3a/0x6d [ 337.064446] [] delete_one_xattr+0x8f/0x99 [ 337.064456] [] reiserfs_for_each_xattr+0xe9/0x224 [ 337.064467] [] reiserfs_delete_xattrs+0x15/0x3f [ 337.064477] [] reiserfs_evict_inode+0x7f/0x115 [ 337.064490] [] evict+0x85/0x126 [ 337.064500] [] iput+0x141/0x146 [ 337.064509] [] do_unlinkat+0xf1/0x136 [ 337.064520] [] sys_unlinkat+0x2b/0x32 [ 337.064530] [] sysenter_do_call+0x12/0x32 [ 337.064541] [ 337.064542] other info that might help us debug this: [ 337.064544] [ 337.064570] Possible unsafe locking scenario: [ 337.064572] [ 337.064588] CPU0 CPU1 [ 337.064599] ---- ---- [ 337.064609] lock(&sb->s_type->i_mutex_key); [ 337.064623] lock(&sb->s_type->i_mutex_key); [ 337.064638] lock(&sb->s_type->i_mutex_key); [ 337.064654] lock(&sb->s_type->i_mutex_key); [ 337.064667] [ 337.064668] *** DEADLOCK *** [ 337.064669] [ 337.064690] 1 lock held by rm/4340: [ 337.064700] #0: (&sb->s_type->i_mutex_key#12/3){+.+.+.}, at: [] reiserfs_for_each_xattr+0x9e/0x224 [ 337.064725] [ 337.064726] stack backtrace: [ 337.064743] Pid: 4340, comm: rm Not tainted 3.1.0-main #18 [ 337.064755] Call Trace: [ 337.064767] [] ? printk+0xf/0x13 [ 337.064781] [] print_circular_bug+0x215/0x222 [ 337.064796] [] __lock_acquire+0xee6/0x1472 [ 337.064811] [] ? tick_dev_program_event+0x24/0x105 [ 337.064826] [] lock_acquire+0x47/0x5e [ 337.064839] [] ? xattr_unlink+0x3a/0x6d [ 337.064853] [] ? xattr_unlink+0x3a/0x6d [ 337.064867] [] mutex_lock_nested+0x35/0x26f [ 337.064881] [] ? xattr_unlink+0x3a/0x6d [ 337.064894] [] xattr_unlink+0x3a/0x6d [ 337.064908] [] delete_one_xattr+0x8f/0x99 [ 337.064921] [] reiserfs_for_each_xattr+0xe9/0x224 [ 337.064936] [] ? xattr_unlink+0x6d/0x6d [ 337.064950] [] ? sub_preempt_count+0x81/0x8e [ 337.064965] [] ? mutex_lock_nested+0x254/0x26f [ 337.064980] [] reiserfs_delete_xattrs+0x15/0x3f [ 337.064994] [] reiserfs_evict_inode+0x7f/0x115 [ 337.065009] [] ? get_parent_ip+0xb/0x31 [ 337.065023] [] ? sub_preempt_count+0x81/0x8e [ 337.065037] [] evict+0x85/0x126 [ 337.065050] [] iput+0x141/0x146 [ 337.065063] [] do_unlinkat+0xf1/0x136 [ 337.065078] [] ? dnotify_flush+0x2c/0xa6 [ 337.065092] [] ? sysenter_exit+0xf/0x16 [ 337.065107] [] sys_unlinkat+0x2b/0x32 [ 337.065120] [] sysenter_do_call+0x12/0x32