--- 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;
 }