summaryrefslogtreecommitdiffstats
path: root/fs/read_write.c
diff options
context:
space:
mode:
authorDarrick J. Wong <darrick.wong@oracle.com>2018-10-30 00:40:46 +0100
committerDave Chinner <david@fromorbit.com>2018-10-30 00:40:46 +0100
commit9fd91a90cb9837372af24a804853e15c11aed93e (patch)
tree28bf526bcccd9d6250a7451e5c2d734a419c70f4 /fs/read_write.c
parentvfs: exit early from zero length remap operations (diff)
downloadlinux-9fd91a90cb9837372af24a804853e15c11aed93e.tar.xz
linux-9fd91a90cb9837372af24a804853e15c11aed93e.zip
vfs: strengthen checking of file range inputs to generic_remap_checks
File range remapping, if allowed to run past the destination file's EOF, is an optimization on a regular file write. Regular file writes that extend the file length are subject to various constraints which are not checked by range cloning. This is a correctness problem because we're never allowed to touch ranges that the page cache can't support (s_maxbytes); we're not supposed to deal with large offsets (MAX_NON_LFS) if O_LARGEFILE isn't set; and we must obey resource limits (RLIMIT_FSIZE). Therefore, add these checks to the new generic_remap_checks function so that we curtail unexpected behavior. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Amir Goldstein <amir73il@gmail.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/read_write.c')
0 files changed, 0 insertions, 0 deletions