On Tue, Nov 17, 2015 at 07:22:52AM -0800, Christoph Hellwig wrote: > On Tue, Nov 17, 2015 at 08:57:45AM -0500, Chris Mason wrote: > > > > Errrgh, the golden output of this test reflects the changes to the input > > > > checking in Anna/Peng's copy_file_range/clone_file_range patches. > > > > > > > > So, I guess the question is, should I reset the golden output to whatever > > > > btrfs spits out before that patchset, and we'll consider the alterations > > > > to be bugs/regressions/whatever that ought to be fixed in their patches? > > > > > > Some bits in btrfs don't seem kosher. But it would be good to > > > explicitly send patches for btrfs to adopt to what might make more > > > sense, and then follow it in the other implementations. > > > > Btrfs does check for directories, but we should really be checking for > > regular files too. In the end, we only copy extents that would > > correspond with regular files, so we're sneaking by. > > Yes, I saw that. So so far I'd suggest something like the following > for btrfs: > > - return EBADFD for missing read/wite permissions Current btrfs returns EINVAL if the file isn't open for writing or is append-only. I think EBADF captures the situation here better and it's what Anna is pushing for copy_file_range. We can make the change, but generic/157 will fail on old kernels if we do this. I don't have a problem with 157 failing on old kernels; we can backport the change to them, or note that ioctls are murky anyway. > - return EINVAL for wrong non-directory file types as the > source fd > And then make the test case and other implementations match this. > > Does this sound like a plan? Yes. One other thing I noticed -- prior to Anna's patchset, trying to invoke the reflink ioctl with a device, pipe, or socket as the destination could return a variety of error codes (-ENOTTY, -EINVAL, -ENOIOCTLCMD, etc.) which has all been replaced with -EOPNOTSUPP. That seems like a reasonable direction to take the test case. Does this seem like a reasonable addition to the plan? Should invalid inputs to the dedupe ioctl return the same error codes as the same invalid inputs to the reflink ioctl? I've been working on patches to hoist EXTENT_SAME to the VFS. --D > > _______________________________________________ > xfs mailing list > xfs@xxxxxxxxxxx > http://oss.sgi.com/mailman/listinfo/xfs _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs