> On Mar 2, 2017, at 11:58 AM, Darrick J. Wong <darrick.wong@xxxxxxxxxx> wrote: > > On Thu, Mar 02, 2017 at 11:02:09AM -0500, Olga Kornievskaia wrote: >> From: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx> >> >> Signed-off-by: Anna Schumaker <Anna.Schumaker@xxxxxxxxxx> >> --- >> fs/read_write.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/fs/read_write.c b/fs/read_write.c >> index 5816d4c..1d9e305 100644 >> --- a/fs/read_write.c >> +++ b/fs/read_write.c >> @@ -1526,6 +1526,9 @@ ssize_t vfs_copy_file_range(struct file *file_in, loff_t pos_in, >> if (unlikely(ret)) >> return ret; >> >> + if (pos_in >= i_size_read(inode_in)) >> + return -EINVAL; >> + > > This ought to go in vfs_clone_file_prep_inodes. > > (He says, noticing that btrfs never got updated to use that validator…) I apologize I’m not fully understanding the suggestion here. How btrfs is related to the check that I’m suggesting for the copy_file_range(). I don’t see how it would fix the problem for the copy_file_range(). Is the suggestion that NFS’s clone implementation is suppose to call vfs_clone_file_prep_inodes() where the check would be added and thus because vfs_copy_file_range() first decides to call clone() instead of copy() then that check would be met? > > --D > >> if (!(file_in->f_mode & FMODE_READ) || >> !(file_out->f_mode & FMODE_WRITE) || >> (file_out->f_flags & O_APPEND)) >> -- >> 1.8.3.1 >> -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html