--- x/fs/super.c +++ y/fs/super.c @@ -565,12 +565,10 @@ static bool grab_super_dead(struct super sb->s_count++; if (grab_super(sb)) { - put_super(sb); lockdep_assert_held(&sb->s_umount); return true; } wait_var_event(&sb->s_flags, wait_dead(sb)); - put_super(sb); lockdep_assert_not_held(&sb->s_umount); return false; }