From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755589AbXD0KxS (ORCPT ); Fri, 27 Apr 2007 06:53:18 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755592AbXD0KxR (ORCPT ); Fri, 27 Apr 2007 06:53:17 -0400 Received: from mx2.suse.de ([195.135.220.15]:56502 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755588AbXD0KxP (ORCPT ); Fri, 27 Apr 2007 06:53:15 -0400 Date: Fri, 27 Apr 2007 12:53:14 +0200 Message-ID: From: Takashi Iwai To: Andrew Morton Cc: David Brownell , Linux Kernel list , reiserfs-dev@namesys.com, Jeff Mahoney Subject: Re: 2.6.21 reiserfs -- cicular locking? In-Reply-To: References: <200704261640.15068.david-b@pacbell.net> <20070426224408.fd525b46.akpm@linux-foundation.org> User-Agent: Wanderlust/2.12.0 (Your Wildest Dreams) SEMI/1.14.6 (Maruoka) FLIM/1.14.7 (=?ISO-8859-4?Q?Sanj=F2?=) APEL/10.6 MULE XEmacs/21.5 (beta27) (fiddleheads) (+CVS-20060704) (i386-suse-linux) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org At Fri, 27 Apr 2007 12:09:03 +0200, I wrote: > > I got a similar bug right now at the fresh boot of 2.6.21. > > > ReiserFS: sda2: found reiserfs format "3.6" with standard journal > ReiserFS: sda2: using ordered data mode > ReiserFS: sda2: journal params: device sda2, size 8192, journal first block 18, max trans len 1024, max batch 900, max commit age 30, max trans age 30 > ReiserFS: sda2: checking transaction log (sda2) > ReiserFS: sda2: Using r5 hash to sort names > ReiserFS: sda2: Removing [3613 1354701 0x0 SD]..done > ReiserFS: sda2: There were 1 uncompleted unlinks/truncates. Completed > > ======================================================= > [ INFO: possible circular locking dependency detected ] > 2.6.21-work #1 > ------------------------------------------------------- > mktemp/1459 is trying to acquire lock: > (&REISERFS_I(inode)->xattr_sem){..--}, at: [] reiserfs_cache_default_acl+0x2a/0x9c [reiserfs] > > but task is already holding lock: > (&inode->i_mutex){--..}, at: [] open_namei+0xe2/0x5a2 > > which lock already depends on the new lock. > > > the existing dependency chain (in reverse order) is: > > -> #2 (&inode->i_mutex){--..}: > [] __lock_acquire+0xa27/0xbbb > [] get_xa_root+0x42/0xfc [reiserfs] > [] lock_acquire+0x67/0x81 > [] get_xa_root+0x42/0xfc [reiserfs] > [] __mutex_lock_slowpath+0xe3/0x241 > [] get_xa_root+0x42/0xfc [reiserfs] > [] get_xa_root+0x42/0xfc [reiserfs] > [] reiserfs_delete_inode+0x0/0xa1 [reiserfs] > [] open_xa_dir+0x16/0xd9 [reiserfs] > [] reiserfs_delete_xattrs+0x4b/0x15b [reiserfs] > [] reiserfs_delete_inode+0x0/0xa1 [reiserfs] > [] down_read+0x3d/0x4e > [] reiserfs_delete_inode+0x0/0xa1 [reiserfs] > [] reiserfs_delete_xattrs+0x57/0x15b [reiserfs] > [] reiserfs_delete_inode+0x0/0xa1 [reiserfs] > [] reiserfs_delete_inode+0x0/0xa1 [reiserfs] > [] reiserfs_delete_inode+0x35/0xa1 [reiserfs] > [] _atomic_dec_and_lock+0x2a/0x48 > [] reiserfs_delete_inode+0x0/0xa1 [reiserfs] > [] generic_delete_inode+0x75/0xdd > [] iput+0x60/0x62 > [] finish_unfinished+0x2ee/0x350 [reiserfs] > [] lookup_one_len+0x21/0x59 > [] reiserfs_xattr_init+0x8f/0x1f6 [reiserfs] > [] reiserfs_fill_super+0x95e/0xab6 [reiserfs] > [] rcu_barrier+0x5a/0x6a > [] dump_trace+0x89/0x93 > [] save_stack_trace+0x1c/0x37 > [] save_trace+0x40/0x92 > [] sget+0x1f/0x33b > [] __lock_acquire+0xb27/0xbbb > [] sget+0x1f/0x33b > [] vsnprintf+0x450/0x48c > [] snprintf+0x1f/0x22 > [] disk_name+0x7e/0x88 > [] get_sb_bdev+0xe6/0x130 > [] get_super_block+0x20/0x25 [reiserfs] > [] reiserfs_fill_super+0x0/0xab6 [reiserfs] > [] vfs_kern_mount+0x83/0xf6 > [] do_kern_mount+0x2d/0x3e > [] do_mount+0x612/0x685 > [] __handle_mm_fault+0x50c/0x902 > [] __handle_mm_fault+0x4d5/0x902 > [] _spin_unlock+0x14/0x1c > [] __handle_mm_fault+0x8cb/0x902 > [] get_page_from_freelist+0x1fd/0x31d > [] trace_hardirqs_on+0x126/0x150 > [] up_read+0x14/0x27 > [] __alloc_pages+0x68/0x2aa > [] copy_mount_options+0x26/0x109 > [] sys_mount+0x77/0xae > [] syscall_call+0x7/0xb > [] 0xffffffff > > -> #1 (&REISERFS_SB(s)->xattr_dir_sem){..--}: > [] __lock_acquire+0xa27/0xbbb > [] reiserfs_listxattr+0x5a/0x11e [reiserfs] > [] lock_acquire+0x67/0x81 > [] reiserfs_listxattr+0x5a/0x11e [reiserfs] > [] down_read+0x3d/0x4e > [] reiserfs_listxattr+0x5a/0x11e [reiserfs] > [] reiserfs_listxattr+0x5a/0x11e [reiserfs] > [] trace_hardirqs_on+0x126/0x150 > [] reiserfs_listxattr+0x0/0x11e [reiserfs] > [] vfs_listxattr+0x46/0x7c > [] listxattr+0x44/0x87 > [] sys_llistxattr+0x33/0x44 > [] up_read+0x14/0x27 > [] restore_nocheck+0x12/0x15 > [] syscall_call+0x7/0xb > [] 0xffffffff > > -> #0 (&REISERFS_I(inode)->xattr_sem){..--}: > [] print_stack_trace+0x4e/0x5c > [] __lock_acquire+0x913/0xbbb > [] reiserfs_cache_default_acl+0x2a/0x9c [reiserfs] > [] new_inode+0x24/0x8a > [] lock_acquire+0x67/0x81 > [] reiserfs_cache_default_acl+0x2a/0x9c [reiserfs] > [] down_read+0x3d/0x4e > [] reiserfs_cache_default_acl+0x2a/0x9c [reiserfs] > [] reiserfs_cache_default_acl+0x2a/0x9c [reiserfs] > [] reiserfs_create+0x3d/0x1bc [reiserfs] > [] reiserfs_permission+0x0/0x21 [reiserfs] > [] permission+0xc8/0xdb > [] vfs_create+0x9c/0x106 > [] open_namei+0x177/0x5a2 > [] do_filp_open+0x25/0x39 > [] _spin_unlock+0x14/0x1c > [] get_unused_fd+0xb3/0xbd > [] do_sys_open+0x42/0xbe > [] sys_open+0x1c/0x1e > [] syscall_call+0x7/0xb > [] 0xffffffff > > other info that might help us debug this: > > 1 lock held by mktemp/1459: > #0: (&inode->i_mutex){--..}, at: [] open_namei+0xe2/0x5a2 > > stack backtrace: > [] print_circular_bug_tail+0x5f/0x67 > [] __lock_acquire+0x913/0xbbb > [] reiserfs_cache_default_acl+0x2a/0x9c [reiserfs] > [] new_inode+0x24/0x8a > [] lock_acquire+0x67/0x81 > [] reiserfs_cache_default_acl+0x2a/0x9c [reiserfs] > [] down_read+0x3d/0x4e > [] reiserfs_cache_default_acl+0x2a/0x9c [reiserfs] > [] reiserfs_cache_default_acl+0x2a/0x9c [reiserfs] > [] reiserfs_create+0x3d/0x1bc [reiserfs] > [] reiserfs_permission+0x0/0x21 [reiserfs] > [] permission+0xc8/0xdb > [] vfs_create+0x9c/0x106 > [] open_namei+0x177/0x5a2 > [] do_filp_open+0x25/0x39 > [] _spin_unlock+0x14/0x1c > [] get_unused_fd+0xb3/0xbd > [] do_sys_open+0x42/0xbe > [] sys_open+0x1c/0x1e > [] syscall_call+0x7/0xb > ======================= The message disappears when I revert the patch: commit 9b7f375505f5611efb562065b57814b28a81abc3 Author: Jeff Mahoney Date: Mon Apr 23 14:41:17 2007 -0700 reiserfs: fix xattr root locking/refcount bug So, likely a newly introduced bug after rc7... Takashi