[PATCH] vfs: cap dedupe request structure size at PAGE_SIZE
Christoph Hellwig
hch at infradead.org
Mon Aug 1 01:31:28 CDT 2016
On Thu, Jul 28, 2016 at 11:35:34AM -0700, Darrick J. Wong wrote:
> Kirill A. Shutemov reports that the kernel doesn't try to cap dest_count
> in any way, and uses the number to allocate kernel memory. This causes
> high order allocation warnings in the kernel log if someone passes in a
> big enough value. We should clamp the allocation at PAGE_SIZE to avoid
> stressing the VM.
>
> The two existing users of the dedupe ioctl never send more than 120
> requests, so we can safely clamp dest_range at PAGE_SIZE, because with
> 4k pages we can handle up to 127 dedupe candidates. Given the max
> extent length of 16MB, we can end up doing 2GB of IO which is plenty.
Looks fine,
Reviewed-by: Christoph Hellwig <hch at lst.de>
> @@ -582,6 +582,10 @@ static int ioctl_file_dedupe_range(struct file *file, void __user *arg)
This function returns long in mainline. Maybe you should resend your
return type fix to Al while you're at it?
More information about the xfs
mailing list