Okay, that fixes the problem. For reference, the file can be prepared thusly: xfs_io -c "pwrite 0 16M" -c "fpunch 0 1M" -c "fpunch 2M 1M" -c "fpunch 4M 1M" -c "fpunch 6M 1M" -c "fpunch 8M 1M" /xfstest.test/foo and then the test run: xfs_io -c "seek -h 1" /xfstest.test/foo Something like punch-hole is needed to set the sparse flag - otherwise QAR isn't used by llseek(). So: Tested-by: David Howells <dhowells@xxxxxxxxxx> if you need it. The Fedora samba version I applied this to was: samba-4.19.7-1.fc39.x86_64 though I had to drop the testing bits as they didn't build. David