I have a few questions about the BTRFS_IOC_FILE_EXTENT_SAME ioctl, and was hoping that I could get answers here without having to go source diving or trying to test things myself: 1. What kind of overhead is there when it is called on a group of extents that aren't actually the same (aside from the obvious pair of context-switches that are required for an ioctl)? I would think that it would bail at the first difference it finds, but I have learned that when it comes to kernel code, just because something seems obvious doesn't mean that's how it's done. 2. Does it matter if the ranges passed in are actual extents, or can they be arbitrary ranges of equal bytes in the files? 3. What happens if one of the ranges is truncated by the end of a file? IOW, if I have files A and B, and file A is longer than file B, and file B is identical to the start of file A, what happens if I pass in both files starting at offset 0, but pass the length of file A instead of passing in the length of file B? 4. Does it matter if one of the extents passed in is compressed and the other is not? Thanks in advance.