diff options
-rw-r--r-- | THANKS.in | 1 | ||||
-rwxr-xr-x | tests/dd/sparse.sh | 9 |
2 files changed, 9 insertions, 1 deletions
@@ -95,6 +95,7 @@ Bjorn Helgaas helgaas@rsn.hp.com Bob McCracken kerouac@ravenet.com Branden Robinson branden@necrotic.deadbeast.net Brendan O'Dea bod@compusol.com.au +Brian Foster bfoster@redhat.com Brian Kimball bfk@footbag.org Brian M. Carlson sandals@crustytoothpaste.ath.cx Brian Silverman bsilverman@conceptxdesign.com diff --git a/tests/dd/sparse.sh b/tests/dd/sparse.sh index 06efc7017..a7e90d2be 100755 --- a/tests/dd/sparse.sh +++ b/tests/dd/sparse.sh @@ -61,8 +61,15 @@ if test $(kb_alloc file.in) -gt 3000; then dd if=file.in of=file.out bs=2M conv=sparse test 2500 -lt $(kb_alloc file.out) || fail=1 + # Note we recreate a sparse file first to avoid + # speculative preallocation seen in XFS, where a write() that + # extends a file can preallocate some extra space that + # a subsequent seek will not convert to a hole. + rm -f file.out + truncate --size=3M file.out + # Ensure that this 1MiB string of NULs *is* converted to a hole. - dd if=file.in of=file.out bs=1M conv=sparse + dd if=file.in of=file.out bs=1M conv=sparse,notrunc test $(kb_alloc file.out) -lt 2500 || fail=1 fi |