test_fsync in tools/fsync pre-creates a 16MB file. If it is given a number of iterations greater than 1024 (like one might use if trying to see what happens when NVRAM gets filled, or on a journaling file system), than one of the writes being timed will have to extend the size of the pre-created test file, which can greatly skew the results.
This patch uses lseek to periodically restart at the beginning of the file, rather than writing past the end of it.