Copying sparse files with trailing extents using "cp" no longer causes data corruption
When creating sparse files, the *fallocate* utility could allocate extents beyond EOF using `FALLOC_FL_KEEP_SIZE`. As a consequence, when there was a gap (hole) between the extents, and EOF was within that gap, the final hole was not reproduced, which caused silent data corruption in the copied file due to its size being too small. With this update, the "cp" command ensures that extents beyond the apparent file size are not processed, as such processing and allocating is not currently supported. As a result, silent data corruption in certain type of sparse files no longer occurs.