vfs: exit early from zero length remap operations
authorDarrick J. Wong <darrick.wong@oracle.com>
Mon, 29 Oct 2018 23:40:39 +0000 (10:40 +1100)
committerDave Chinner <david@fromorbit.com>
Mon, 29 Oct 2018 23:40:39 +0000 (10:40 +1100)
If a remap caller asks us to remap to the source file's EOF and the
source file length leaves us with a zero byte request, exit early.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/read_write.c

index d6e8e24..2456da3 100644 (file)
@@ -1748,6 +1748,8 @@ int vfs_clone_file_prep(struct file *file_in, loff_t pos_in,
                if (pos_in > isize)
                        return -EINVAL;
                *len = isize - pos_in;
+               if (*len == 0)
+                       return 0;
        }
 
        /* Check that we don't violate system file offset limits. */