On Mon, Nov 27, 2023 at 12:51:31PM +0100, Christian Brauner wrote: > diff --git a/fs/super.c b/fs/super.c > index f3227b22879d..844ca13e9d93 100644 > --- a/fs/super.c > +++ b/fs/super.c > @@ -2067,10 +2067,7 @@ int freeze_super(struct super_block *sb, enum freeze_holder who) > /* Release s_umount to preserve sb_start_write -> s_umount ordering */ > super_unlock_excl(sb); > sb_wait_write(sb, SB_FREEZE_WRITE); > - if (!super_lock_excl(sb)) { > - WARN_ON_ONCE("Dying superblock while freezing!"); > - return -EINVAL; > - } > + __super_lock_excl(sb); This looks ok, but I still find these locking helper so horrible to follow..