diff options
author | Miklos Szeredi <mszeredi@redhat.com> | 2018-07-06 17:57:02 -0400 |
---|---|---|
committer | Miklos Szeredi <mszeredi@redhat.com> | 2018-07-06 17:57:02 -0400 |
commit | 92b66d2cdd7a4f6f6aa31be5f16a3f0c88902690 (patch) | |
tree | 2944ca30889746487f968de9d7867f953b6839a3 /fs/read_write.c | |
parent | ce397d215ccd07b8ae3f71db689aedb85d56ab40 (diff) |
vfs: limit size of dedupe
Suggested-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
Diffstat (limited to 'fs/read_write.c')
-rw-r--r-- | fs/read_write.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/read_write.c b/fs/read_write.c index 153f8f690490..f43bb12b4759 100644 --- a/fs/read_write.c +++ b/fs/read_write.c | |||
@@ -2003,6 +2003,9 @@ int vfs_dedupe_file_range(struct file *file, struct file_dedupe_range *same) | |||
2003 | if (off + len > i_size_read(src)) | 2003 | if (off + len > i_size_read(src)) |
2004 | return -EINVAL; | 2004 | return -EINVAL; |
2005 | 2005 | ||
2006 | /* Arbitrary 1G limit on a single dedupe request, can be raised. */ | ||
2007 | len = min_t(u64, len, 1 << 30); | ||
2008 | |||
2006 | /* pre-format output fields to sane values */ | 2009 | /* pre-format output fields to sane values */ |
2007 | for (i = 0; i < count; i++) { | 2010 | for (i = 0; i < count; i++) { |
2008 | same->info[i].bytes_deduped = 0ULL; | 2011 | same->info[i].bytes_deduped = 0ULL; |