How do you monitor progress of, say, fsync()? I mean, how many system calls were designed with progress monitoring in mind?
I'm wondering why a call with less than file granularity was not considered (at least I am not aware of). If you could pick smaller units (multiplies of filesystem blocks?) to clone, you could probably also find more interesting uses apart from being able to reasonably control/monitor progress.