Re: [BUG] fs: super: possible ABBA deadlocks in do_thaw_all_callback() and freeze_bdev()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux