Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c03d01f3 authored by David Sterba's avatar David Sterba
Browse files

btrfs: send: use vmalloc only as fallback for clone_roots



Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent e55d1153
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -6053,11 +6053,14 @@ long btrfs_ioctl_send(struct file *mnt_file, void __user *arg_)

	alloc_size = sizeof(struct clone_root) * (arg->clone_sources_count + 1);

	sctx->clone_roots = kzalloc(alloc_size, GFP_KERNEL | __GFP_NOWARN);
	if (!sctx->clone_roots) {
		sctx->clone_roots = vzalloc(alloc_size);
		if (!sctx->clone_roots) {
			ret = -ENOMEM;
			goto out;
		}
	}

	alloc_size = arg->clone_sources_count * sizeof(*arg->clone_sources);

@@ -6227,7 +6230,7 @@ long btrfs_ioctl_send(struct file *mnt_file, void __user *arg_)
		if (sctx->send_filp)
			fput(sctx->send_filp);

		vfree(sctx->clone_roots);
		kvfree(sctx->clone_roots);
		kvfree(sctx->send_buf);
		kvfree(sctx->read_buf);