From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932246AbWFHLXo (ORCPT ); Thu, 8 Jun 2006 07:23:44 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932252AbWFHLXn (ORCPT ); Thu, 8 Jun 2006 07:23:43 -0400 Received: from mx3.mail.elte.hu ([157.181.1.138]:39875 "EHLO mx3.mail.elte.hu") by vger.kernel.org with ESMTP id S932246AbWFHLXm (ORCPT ); Thu, 8 Jun 2006 07:23:42 -0400 Date: Thu, 8 Jun 2006 13:23:06 +0200 From: Ingo Molnar To: Anton Altaparmakov Cc: Miles Lane , LKML , Andrew Morton , Arjan van de Ven Subject: Re: 2.6.17-rc6-mm1 -- BUG: possible circular locking deadlock detected! Message-ID: <20060608112306.GA4234@elte.hu> References: <1149751953.10056.10.camel@imp.csi.cam.ac.uk> <20060608095522.GA30946@elte.hu> <1149764032.10056.82.camel@imp.csi.cam.ac.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1149764032.10056.82.camel@imp.csi.cam.ac.uk> User-Agent: Mutt/1.4.2.1i X-ELTE-SpamScore: 0.0 X-ELTE-SpamLevel: X-ELTE-SpamCheck: no X-ELTE-SpamVersion: ELTE 2.0 X-ELTE-SpamCheck-Details: score=0.0 required=5.9 tests=AWL,BAYES_50 autolearn=no SpamAssassin version=3.0.3 0.0 BAYES_50 BODY: Bayesian spam probability is 40 to 60% [score: 0.5000] 0.0 AWL AWL: From: address is in the auto white-list X-ELTE-VirusStatus: clean Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org * Anton Altaparmakov wrote: > No it is not as explained above. Something has gotten confused > somewhere because the order of events is the wrong way round... ok, next try. Find below a chronological trace of the lock acquire and new dependency events leading up the the circular dependency message. The first (mrec_lock -> runlist.lock) dependency is: new dependency: (&ni->mrec_lock){--..} => (&rl->lock){..--} [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x9a9/0xde0 [] lock_acquire+0x7b/0xa0 [] down_read+0x2c/0x40 [] ntfs_readpage+0x83c/0x9a0 [] read_cache_page+0xac/0x150 [] map_mft_record+0x112/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d and the opposite (runlist.lock -> mrec_lock) dependency wants to get created at: [] mutex_lock+0x8/0x10 [] map_mft_record+0x51/0x2c0 [] ntfs_map_runlist_nolock+0x3d8/0x530 [] ntfs_map_runlist+0x41/0x70 [] ntfs_readpage+0x8c1/0x9a0 [] read_cache_page+0xac/0x150 [] load_system_files+0x472/0x2250 [] ntfs_fill_super+0xc56/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d does this trace make more sense? Ingo ----{ NTFS lock events trace }-------------> new type c05bfcc4: &ni->mrec_lock [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0xd04/0xde0 [] lock_acquire+0x7b/0xa0 [] __mutex_lock_slowpath+0x6f/0x2a0 [] mutex_lock+0x8/0x10 [] map_mft_record+0x51/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d acquire type [c05bfcc4] &ni->mrec_lock [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x539/0xde0 [] lock_acquire+0x7b/0xa0 [] __mutex_lock_slowpath+0x6f/0x2a0 [] mutex_lock+0x8/0x10 [] map_mft_record+0x51/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d new dependency: (&s->s_umount#15){--..} => (&ni->mrec_lock){....} [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x9a9/0xde0 [] lock_acquire+0x7b/0xa0 [] __mutex_lock_slowpath+0x6f/0x2a0 [] mutex_lock+0x8/0x10 [] map_mft_record+0x51/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d marked lock as {hardirq-on-W}: (&ni->mrec_lock){-...}, at: [] mutex_lock+0x8/0x10 irq event stamp: 2309 hardirqs last enabled at (2307): [] _spin_unlock_irqrestore+0x47/0x60 hardirqs last disabled at (2309): [] vprintk+0x26/0x360 softirqs last enabled at (1988): [] __do_softirq+0xfe/0x110 softirqs last disabled at (1981): [] do_softirq+0x69/0x100 [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] mark_lock+0x1c7/0x6b0 [] mark_held_locks+0x4b/0xa0 [] trace_hardirqs_on+0x70/0x160 [] __mutex_lock_slowpath+0x15f/0x2a0 [] mutex_lock+0x8/0x10 [] map_mft_record+0x51/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d marked lock as {softirq-on-W}: (&ni->mrec_lock){--..}, at: [] mutex_lock+0x8/0x10 irq event stamp: 2309 hardirqs last enabled at (2307): [] _spin_unlock_irqrestore+0x47/0x60 hardirqs last disabled at (2309): [] vprintk+0x26/0x360 softirqs last enabled at (1988): [] __do_softirq+0xfe/0x110 softirqs last disabled at (1981): [] do_softirq+0x69/0x100 [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] mark_lock+0x1c7/0x6b0 [] mark_held_locks+0x82/0xa0 [] trace_hardirqs_on+0xb0/0x160 [] __mutex_lock_slowpath+0x15f/0x2a0 [] mutex_lock+0x8/0x10 [] map_mft_record+0x51/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d new dependency: (&ni->mrec_lock){--..} => (cpa_lock){++..} [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x9a9/0xde0 [] lock_acquire+0x7b/0xa0 [] _spin_lock_irqsave+0x39/0x50 [] change_page_attr+0x1c/0x2a0 [] kernel_map_pages+0x2a/0xa0 [] get_page_from_freelist+0x253/0x3c0 [] __alloc_pages+0x50/0x2f0 [] read_cache_page+0x85/0x150 [] map_mft_record+0x112/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d new dependency: (&ni->mrec_lock){--..} => (&inode->i_data.tree_lock){++..} [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x9a9/0xde0 [] lock_acquire+0x7b/0xa0 [] _write_lock_irq+0x32/0x40 [] add_to_page_cache+0x41/0xd0 [] add_to_page_cache_lru+0x1b/0x40 [] read_cache_page+0x37/0x150 [] map_mft_record+0x112/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d new dependency: (&ni->mrec_lock){--..} => (&inode->i_data.private_lock){--..} [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x9a9/0xde0 [] lock_acquire+0x7b/0xa0 [] _spin_lock+0x2c/0x40 [] create_empty_buffers+0x33/0xa0 [] ntfs_readpage+0x317/0x9a0 [] read_cache_page+0xac/0x150 [] map_mft_record+0x112/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d new type c05bfcbc: &rl->lock [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0xd04/0xde0 [] lock_acquire+0x7b/0xa0 [] down_read+0x2c/0x40 [] ntfs_readpage+0x83c/0x9a0 [] read_cache_page+0xac/0x150 [] map_mft_record+0x112/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d acquire type [c05bfcbc] &rl->lock [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x539/0xde0 [] lock_acquire+0x7b/0xa0 [] down_read+0x2c/0x40 [] ntfs_readpage+0x83c/0x9a0 [] read_cache_page+0xac/0x150 [] map_mft_record+0x112/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d marked lock as {hardirq-on-R}: (&rl->lock){..-.}, at: [] ntfs_readpage+0x83c/0x9a0 irq event stamp: 2440 hardirqs last enabled at (2439): [] _read_unlock_irqrestore+0x47/0x60 hardirqs last disabled at (2440): [] vprintk+0x26/0x360 softirqs last enabled at (2436): [] __do_softirq+0xfe/0x110 softirqs last disabled at (2419): [] do_softirq+0x69/0x100 [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] mark_lock+0x1c7/0x6b0 [] __lock_acquire+0x556/0xde0 [] lock_acquire+0x7b/0xa0 [] down_read+0x2c/0x40 [] ntfs_readpage+0x83c/0x9a0 [] read_cache_page+0xac/0x150 [] map_mft_record+0x112/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d marked lock as {softirq-on-R}: (&rl->lock){..--}, at: [] ntfs_readpage+0x83c/0x9a0 irq event stamp: 2440 hardirqs last enabled at (2439): [] _read_unlock_irqrestore+0x47/0x60 hardirqs last disabled at (2440): [] vprintk+0x26/0x360 softirqs last enabled at (2436): [] __do_softirq+0xfe/0x110 softirqs last disabled at (2419): [] do_softirq+0x69/0x100 [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] mark_lock+0x1c7/0x6b0 [] __lock_acquire+0x662/0xde0 [] lock_acquire+0x7b/0xa0 [] down_read+0x2c/0x40 [] ntfs_readpage+0x83c/0x9a0 [] read_cache_page+0xac/0x150 [] map_mft_record+0x112/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d new dependency: (&ni->mrec_lock){--..} => (&rl->lock){..--} [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x9a9/0xde0 [] lock_acquire+0x7b/0xa0 [] down_read+0x2c/0x40 [] ntfs_readpage+0x83c/0x9a0 [] read_cache_page+0xac/0x150 [] map_mft_record+0x112/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d new dependency: (&ni->mrec_lock){--..} => (&lo->lo_lock){....} [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x9a9/0xde0 [] lock_acquire+0x7b/0xa0 [] _spin_lock_irq+0x32/0x40 [] loop_make_request+0x49/0x100 [] generic_make_request+0x1c1/0x270 [] submit_bio+0x4e/0xe0 [] submit_bh+0xcd/0x130 [] ntfs_readpage+0x86e/0x9a0 [] read_cache_page+0xac/0x150 [] map_mft_record+0x112/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d new dependency: (&ni->mrec_lock){--..} => (&q->lock){++..} [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x9a9/0xde0 [] lock_acquire+0x7b/0xa0 [] _spin_lock_irqsave+0x39/0x50 [] complete+0x1b/0x60 [] loop_make_request+0xb7/0x100 [] generic_make_request+0x1c1/0x270 [] submit_bio+0x4e/0xe0 [] submit_bh+0xcd/0x130 [] ntfs_readpage+0x86e/0x9a0 [] read_cache_page+0xac/0x150 [] map_mft_record+0x112/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d new dependency: (&ni->mrec_lock){--..} => (ide_lock){++..} [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x9a9/0xde0 [] lock_acquire+0x7b/0xa0 [] _spin_lock_irq+0x32/0x40 [] generic_unplug_device+0x11/0x30 [] blk_backing_dev_unplug+0x12/0x20 [] loop_unplug+0x37/0x40 [] blk_backing_dev_unplug+0x12/0x20 [] block_sync_page+0x39/0x50 [] sync_page+0x38/0x50 [] __wait_on_bit_lock+0x49/0x70 [] __lock_page+0x6b/0x80 [] read_cache_page+0x105/0x150 [] map_mft_record+0x112/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d new dependency: (&ni->mrec_lock){--..} => (&rq->lock){++..} [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x9a9/0xde0 [] lock_acquire+0x7b/0xa0 [] _spin_lock_irq+0x32/0x40 [] schedule+0xea/0xb80 [] io_schedule+0x28/0x40 [] sync_page+0x3d/0x50 [] __wait_on_bit_lock+0x49/0x70 [] __lock_page+0x6b/0x80 [] read_cache_page+0x105/0x150 [] map_mft_record+0x112/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d acquire type [c05bfcc4] &ni->mrec_lock [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x539/0xde0 [] lock_acquire+0x7b/0xa0 [] __mutex_lock_slowpath+0x6f/0x2a0 [] mutex_lock+0x8/0x10 [] map_mft_record+0x51/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_iget+0x55/0x80 [] load_system_files+0x7a/0x2250 [] ntfs_fill_super+0xc56/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d acquire type [c05bfcbc] &rl->lock [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x539/0xde0 [] lock_acquire+0x7b/0xa0 [] down_read+0x2c/0x40 [] ntfs_readpage+0x83c/0x9a0 [] read_cache_page+0xac/0x150 [] load_system_files+0x472/0x2250 [] ntfs_fill_super+0xc56/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d new dependency: (&s->s_umount#15){--..} => (&rl->lock){..--} [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x9a9/0xde0 [] lock_acquire+0x7b/0xa0 [] down_read+0x2c/0x40 [] ntfs_readpage+0x83c/0x9a0 [] read_cache_page+0xac/0x150 [] load_system_files+0x472/0x2250 [] ntfs_fill_super+0xc56/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d acquire type [c05bfcbc] &rl->lock [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x539/0xde0 [] lock_acquire+0x7b/0xa0 [] down_write+0x2c/0x50 [] ntfs_map_runlist+0x20/0x70 [] ntfs_readpage+0x8c1/0x9a0 [] read_cache_page+0xac/0x150 [] load_system_files+0x472/0x2250 [] ntfs_fill_super+0xc56/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d marked lock as {hardirq-on-W}: (&rl->lock){-.--}, at: [] ntfs_map_runlist+0x20/0x70 irq event stamp: 2940 hardirqs last enabled at (2939): [] restore_nocheck+0x12/0x15 hardirqs last disabled at (2940): [] vprintk+0x26/0x360 softirqs last enabled at (2938): [] __do_softirq+0xfe/0x110 softirqs last disabled at (2923): [] do_softirq+0x69/0x100 [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] mark_lock+0x1c7/0x6b0 [] __lock_acquire+0x368/0xde0 [] lock_acquire+0x7b/0xa0 [] down_write+0x2c/0x50 [] ntfs_map_runlist+0x20/0x70 [] ntfs_readpage+0x8c1/0x9a0 [] read_cache_page+0xac/0x150 [] load_system_files+0x472/0x2250 [] ntfs_fill_super+0xc56/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d marked lock as {softirq-on-W}: (&rl->lock){----}, at: [] ntfs_map_runlist+0x20/0x70 irq event stamp: 2940 hardirqs last enabled at (2939): [] restore_nocheck+0x12/0x15 hardirqs last disabled at (2940): [] vprintk+0x26/0x360 softirqs last enabled at (2938): [] __do_softirq+0xfe/0x110 softirqs last disabled at (2923): [] do_softirq+0x69/0x100 [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] mark_lock+0x1c7/0x6b0 [] __lock_acquire+0x662/0xde0 [] lock_acquire+0x7b/0xa0 [] down_write+0x2c/0x50 [] ntfs_map_runlist+0x20/0x70 [] ntfs_readpage+0x8c1/0x9a0 [] read_cache_page+0xac/0x150 [] load_system_files+0x472/0x2250 [] ntfs_fill_super+0xc56/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d acquire type [c05bfcc4] &ni->mrec_lock [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] __lock_acquire+0x539/0xde0 [] lock_acquire+0x7b/0xa0 [] __mutex_lock_slowpath+0x6f/0x2a0 [] mutex_lock+0x8/0x10 [] map_mft_record+0x51/0x2c0 [] ntfs_map_runlist_nolock+0x3d8/0x530 [] ntfs_map_runlist+0x41/0x70 [] ntfs_readpage+0x8c1/0x9a0 [] read_cache_page+0xac/0x150 [] load_system_files+0x472/0x2250 [] ntfs_fill_super+0xc56/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d ===================================================== [ BUG: possible circular locking deadlock detected! ] ----------------------------------------------------- mount/2406 is trying to acquire lock: (&ni->mrec_lock){--..}, at: [] mutex_lock+0x8/0x10 but task is already holding lock: (&rl->lock){----}, at: [] ntfs_map_runlist+0x20/0x70 which lock already depends on the new lock, which could lead to circular deadlocks! the existing dependency chain (in reverse order) is: -> #1 (&rl->lock){----}: [] lock_acquire+0x7b/0xa0 [] down_read+0x2c/0x40 [] ntfs_readpage+0x83c/0x9a0 [] read_cache_page+0xac/0x150 [] map_mft_record+0x112/0x2c0 [] ntfs_read_locked_inode+0x8d/0x15d0 [] ntfs_read_inode_mount+0x48b/0xba0 [] ntfs_fill_super+0xbfb/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d -> #0 (&ni->mrec_lock){--..}: [] lock_acquire+0x7b/0xa0 [] __mutex_lock_slowpath+0x6f/0x2a0 [] mutex_lock+0x8/0x10 [] map_mft_record+0x51/0x2c0 [] ntfs_map_runlist_nolock+0x3d8/0x530 [] ntfs_map_runlist+0x41/0x70 [] ntfs_readpage+0x8c1/0x9a0 [] read_cache_page+0xac/0x150 [] load_system_files+0x472/0x2250 [] ntfs_fill_super+0xc56/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d other info that might help us debug this: 2 locks held by mount/2406: #0: (&s->s_umount#15){--..}, at: [] sget+0x11d/0x2f0 #1: (&rl->lock){----}, at: [] ntfs_map_runlist+0x20/0x70 stack backtrace: [] show_trace+0x12/0x20 [] dump_stack+0x19/0x20 [] print_circular_bug_tail+0x61/0x70 [] __lock_acquire+0x74f/0xde0 [] lock_acquire+0x7b/0xa0 [] __mutex_lock_slowpath+0x6f/0x2a0 [] mutex_lock+0x8/0x10 [] map_mft_record+0x51/0x2c0 [] ntfs_map_runlist_nolock+0x3d8/0x530 [] ntfs_map_runlist+0x41/0x70 [] ntfs_readpage+0x8c1/0x9a0 [] read_cache_page+0xac/0x150 [] load_system_files+0x472/0x2250 [] ntfs_fill_super+0xc56/0x1a50 [] get_sb_bdev+0xde/0x120 [] ntfs_get_sb+0x1b/0x30 [] vfs_kern_mount+0x33/0xa0 [] do_kern_mount+0x36/0x50 [] do_mount+0x28e/0x640 [] sys_mount+0x6f/0xb0 [] sysenter_past_esp+0x56/0x8d NTFS volume version 1.2. NTFS-fs warning (device loop0): load_system_files(): Disabling sparse support due to NTFS volume version 1.2 (need at least version 3.0).