> To be clear, I can see that the fix to ST_IS_SPARSE should cause > dump_regular_file to be called instead of sparse_dump_file, but I still > wonder if it is wise to leave this logic in place. At the very last, > I think a comment would be helpful to explain that this test is valid > only because ST_IS_SPARSE has already succeeded.
At least for the check for zero blocks in sparse file: It is intentional because it makes the processing of completely sparse files to be done in constant time (try to archive 'file' from `truncate -s 10G file`). This could be documented possibly. Otherwise, I would not say that there is unclear that sparse_dump_file is supposed to be called only against real sparse files.