[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YckgOocIWOrOoRvf@casper.infradead.org>
Date: Mon, 27 Dec 2021 02:08:58 +0000
From: Matthew Wilcox <willy@...radead.org>
To: Jia-Ju Bai <baijiaju1990@...il.com>
Cc: viro@...iv.linux.org.uk, Jens Axboe <axboe@...nel.dk>,
hch@...radead.org, linux-fsdevel@...r.kernel.org,
linux-block@...r.kernel.org,
linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: [BUG] fs: super: possible ABBA deadlocks in
do_thaw_all_callback() and freeze_bdev()
On Mon, Dec 27, 2021 at 10:03:35AM +0800, Jia-Ju Bai wrote:
> My static analysis tool reports several possible ABBA deadlocks in Linux
> 5.10:
>
> do_thaw_all_callback()
> down_write(&sb->s_umount); --> Line 1028 (Lock A)
> emergency_thaw_bdev()
> thaw_bdev()
> mutex_lock(&bdev->bd_fsfreeze_mutex); --> Line 602 (Lock B)
>
> freeze_bdev()
> mutex_lock(&bdev->bd_fsfreeze_mutex); --> Line 556 (Lock B)
> freeze_super()
> down_write(&sb->s_umount); --> Line 1716 (Lock A)
> down_write(&sb->s_umount); --> Line 1738 (Lock A)
> deactivate_super()
> down_write(&s->s_umount); --> Line 365 (Lock A)
>
> When do_thaw_all_callback() and freeze_bdev() are concurrently executed, the
> deadlocks can occur.
>
> I am not quite sure whether these possible deadlocks are real and how to fix
> them if them are real.
> Any feedback would be appreciated, thanks :)
As a rule, ABBA deadlocks that can actually occur are already found by
lockdep. Tools that think they've found something are generally wrong.
I'm not inclined to look in detail to find out why this tool is wrong
because lockdep is so effective.
Powered by blists - more mailing lists