On Thu, Mar 02, 2017 at 08:22:21AM -0800, Christoph Hellwig wrote: > On Thu, Mar 02, 2017 at 11:01:05AM -0500, Olga Kornievskaia wrote: > > + if (pos_in >= i_size_read(inode_in)) > > + return -EINVAL; > > That's not how the syscall is supposed to work, we'd rather do a > short read^^^^^copy. That's what I think too, but then is COPY(2) wrong?: EINVAL Requested range extends beyond the end of the source file; or the flags argument is not 0. Also, copy_file_range can be implemented by ->clone_file_range, where these kinds of checks make more sense, I think; e.g. from btrfs: ret = -EINVAL; if (off + len > src->i_size || off + len < off) goto out_unlock; Well, so the caller just has to be prepared for either behavior, I guess, but that may make it more complicated to use. --b. -- 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