--- x/fs/super.c +++ y/fs/super.c @@ -1624,9 +1624,9 @@ struct dentry *mount_bdev(struct file_sy */ super_unlock_excl(s); error = setup_bdev_super(s, flags, NULL); - __super_lock_excl(s); if (!error) error = fill_super(s, data, flags & SB_SILENT ? 1 : 0); + __super_lock_excl(s); if (error) { deactivate_locked_super(s); return ERR_PTR(error);