mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
xfs/009: work with 64k block size
xfs_alloc_file_space() rounds up allocation requests by the filesystem block size. Hence this commit changes the test to work with block size units rather than with a multiple of 4096 bytes. Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com> Tested-by: Zorro Lang <zlang@redhat.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This commit is contained in:
committed by
Eryu Guan
parent
c01e048881
commit
a97909b3f9
+77
-15
@@ -14,9 +14,6 @@ here=`pwd`
|
||||
tmp=/tmp/$$
|
||||
status=1 # failure is the default!
|
||||
trap "_cleanup; exit \$status" 0 1 2 3 15
|
||||
# This isn't really related to fs block size, it's just what
|
||||
# alloc uses for the "block" unit in it's input parameters...
|
||||
bsize=4096
|
||||
|
||||
_cleanup()
|
||||
{
|
||||
@@ -24,13 +21,6 @@ _cleanup()
|
||||
_scratch_unmount
|
||||
}
|
||||
|
||||
_block_filter()
|
||||
{
|
||||
sed \
|
||||
-e 's/[0-9][0-9]*\.\.[0-9][0-9]*/BLOCKRANGE/g' \
|
||||
-e "s/blocksize $bsize/blocksize BSIZE/g"
|
||||
}
|
||||
|
||||
_init()
|
||||
{
|
||||
echo "*** mkfs"
|
||||
@@ -49,11 +39,6 @@ _init()
|
||||
fi
|
||||
}
|
||||
|
||||
_filesize()
|
||||
{
|
||||
ls -l $1 | $AWK_PROG '{print "filesize = " $5}'
|
||||
}
|
||||
|
||||
# get standard environment, filters and checks
|
||||
. ./common/rc
|
||||
. ./common/filter
|
||||
@@ -64,9 +49,86 @@ _supported_os Linux
|
||||
|
||||
_require_scratch
|
||||
|
||||
_filesize()
|
||||
{
|
||||
ls -l $1 | $AWK_PROG -v bsize="$bsize" '{print "filesize = " $5 / bsize}'
|
||||
}
|
||||
|
||||
_block_filter()
|
||||
{
|
||||
$AWK_PROG -v bsize="$bsize" '
|
||||
/blocksize/ {
|
||||
printf(" blocksize BSIZE\n")
|
||||
|
||||
next
|
||||
}
|
||||
|
||||
/CMD/ {
|
||||
split($3, off, "=")
|
||||
offset = strtonum(off[2])
|
||||
if (offset != -1)
|
||||
offset = offset / bsize
|
||||
|
||||
split($4, len, "=")
|
||||
nr_blocks = strtonum(len[2])
|
||||
if (nr_blocks != -1)
|
||||
nr_blocks = nr_blocks / bsize
|
||||
|
||||
printf(" %s %s off=%s, len=%d\n", $1, $2, offset, nr_blocks)
|
||||
|
||||
next
|
||||
}
|
||||
|
||||
/MAP/ {
|
||||
split($2, off, "=")
|
||||
offset = strtonum(off[2])
|
||||
if (offset != -1)
|
||||
offset = offset / bsize
|
||||
|
||||
split($3, len, "=")
|
||||
|
||||
nr_blocks = strtonum(len[2])
|
||||
|
||||
if (nr_blocks != -1)
|
||||
nr_blocks = nr_blocks / bsize
|
||||
|
||||
printf(" %s off=%s, len=%d %s\n", $1, offset, nr_blocks, $4)
|
||||
|
||||
next
|
||||
}
|
||||
|
||||
/TRUNCATE/ {
|
||||
split($2, off, "=")
|
||||
offset = strtonum(off[2]) / bsize
|
||||
|
||||
printf(" %s off=%s\n", $1, offset)
|
||||
|
||||
next
|
||||
}
|
||||
|
||||
/\[[0-9]+,[0-9]+\]:/ {
|
||||
printf(" %s BLOCKRANGE\n", $1)
|
||||
|
||||
next
|
||||
}
|
||||
|
||||
{
|
||||
print
|
||||
|
||||
next
|
||||
}
|
||||
'
|
||||
}
|
||||
|
||||
_init
|
||||
out=$SCRATCH_MNT/$$.tmp
|
||||
|
||||
# This isn't really related to fs block size, it's just what
|
||||
# alloc uses for the "block" unit in it's input parameters...
|
||||
# However, xfs_alloc_file_space() rounds up allocation
|
||||
# request by the filesystem's block size.
|
||||
bsize=$(_get_file_block_size $SCRATCH_MNT)
|
||||
|
||||
# since we're using a clean FS here, we make some assumptions
|
||||
# about availability of contiguous blocks
|
||||
|
||||
|
||||
+33
-33
@@ -3,8 +3,8 @@ QA output created by 009
|
||||
*** mount
|
||||
*** test 1 - reservations cleared on O_TRUNC
|
||||
blocksize BSIZE
|
||||
CMD resvsp, off=0, len=4096000
|
||||
MAP off=0, len=4096000 [0,1000]
|
||||
CMD resvsp, off=0, len=1000
|
||||
MAP off=0, len=1000 [0,1000]
|
||||
[ofs,count]: start..end
|
||||
[0,1000]: BLOCKRANGE
|
||||
MAP off=0, len=-1 [0-]
|
||||
@@ -17,53 +17,53 @@ filesize = 0
|
||||
filesize = 0
|
||||
*** test 2 - reserve & filesize
|
||||
blocksize BSIZE
|
||||
CMD resvsp, off=0, len=4096000
|
||||
MAP off=0, len=4096000 [0,1000]
|
||||
CMD resvsp, off=0, len=1000
|
||||
MAP off=0, len=1000 [0,1000]
|
||||
[ofs,count]: start..end
|
||||
[0,1000]: BLOCKRANGE
|
||||
filesize = 0
|
||||
*** test 3 - alloc & filesize
|
||||
blocksize BSIZE
|
||||
CMD allocsp, off=4096000, len=-1
|
||||
MAP off=4096000, len=-1 [1000-]
|
||||
CMD allocsp, off=1000, len=-1
|
||||
MAP off=1000, len=-1 [1000-]
|
||||
[ofs,count]: start..end
|
||||
filesize = 4096000
|
||||
filesize = 1000
|
||||
*** test 4 - allocations cleared on O_TRUNC
|
||||
blocksize BSIZE
|
||||
CMD allocsp, off=4096000, len=-1
|
||||
MAP off=4096000, len=-1 [1000-]
|
||||
CMD allocsp, off=1000, len=-1
|
||||
MAP off=1000, len=-1 [1000-]
|
||||
[ofs,count]: start..end
|
||||
filesize = 4096000
|
||||
filesize = 1000
|
||||
blocksize BSIZE
|
||||
MAP off=0, len=-1 [0-]
|
||||
[ofs,count]: start..end
|
||||
filesize = 0
|
||||
*** test 5 - reserve / unreserve
|
||||
blocksize BSIZE
|
||||
CMD resvsp, off=0, len=409600
|
||||
MAP off=0, len=409600 [0,100]
|
||||
CMD resvsp, off=0, len=100
|
||||
MAP off=0, len=100 [0,100]
|
||||
[ofs,count]: start..end
|
||||
[0,100]: BLOCKRANGE
|
||||
CMD unresvsp, off=409600, len=2048000
|
||||
MAP off=409600, len=2048000 [100,500]
|
||||
CMD unresvsp, off=100, len=500
|
||||
MAP off=100, len=500 [100,500]
|
||||
[ofs,count]: start..end
|
||||
MAP off=0, len=-1 [0-]
|
||||
[ofs,count]: start..end
|
||||
[0,100]: BLOCKRANGE
|
||||
CMD unresvsp, off=3686400, len=819200
|
||||
MAP off=3686400, len=819200 [900,200]
|
||||
CMD unresvsp, off=900, len=200
|
||||
MAP off=900, len=200 [900,200]
|
||||
[ofs,count]: start..end
|
||||
MAP off=0, len=-1 [0-]
|
||||
[ofs,count]: start..end
|
||||
[0,100]: BLOCKRANGE
|
||||
*** test 6 - reserve adjacent
|
||||
blocksize BSIZE
|
||||
CMD resvsp, off=0, len=409600
|
||||
MAP off=0, len=409600 [0,100]
|
||||
CMD resvsp, off=0, len=100
|
||||
MAP off=0, len=100 [0,100]
|
||||
[ofs,count]: start..end
|
||||
[0,100]: BLOCKRANGE
|
||||
CMD resvsp, off=409600, len=409600
|
||||
MAP off=409600, len=409600 [100,100]
|
||||
CMD resvsp, off=100, len=100
|
||||
MAP off=100, len=100 [100,100]
|
||||
[ofs,count]: start..end
|
||||
[100,100]: BLOCKRANGE
|
||||
MAP off=0, len=-1 [0-]
|
||||
@@ -71,44 +71,44 @@ filesize = 0
|
||||
[0,200]: BLOCKRANGE
|
||||
*** test 7 - alloc
|
||||
blocksize BSIZE
|
||||
CMD allocsp, off=4096000, len=-1
|
||||
MAP off=4096000, len=-1 [1000-]
|
||||
CMD allocsp, off=1000, len=-1
|
||||
MAP off=1000, len=-1 [1000-]
|
||||
[ofs,count]: start..end
|
||||
MAP off=0, len=-1 [0-]
|
||||
[ofs,count]: start..end
|
||||
[0,1000]: BLOCKRANGE
|
||||
CMD allocsp, off=8192000, len=-1
|
||||
MAP off=8192000, len=-1 [2000-]
|
||||
CMD allocsp, off=2000, len=-1
|
||||
MAP off=2000, len=-1 [2000-]
|
||||
[ofs,count]: start..end
|
||||
MAP off=0, len=-1 [0-]
|
||||
[ofs,count]: start..end
|
||||
[0,2000]: BLOCKRANGE
|
||||
filesize = 8192000
|
||||
filesize = 2000
|
||||
*** test 8 - alloc & truncate
|
||||
blocksize BSIZE
|
||||
CMD allocsp, off=4096000, len=-1
|
||||
MAP off=4096000, len=-1 [1000-]
|
||||
CMD allocsp, off=1000, len=-1
|
||||
MAP off=1000, len=-1 [1000-]
|
||||
[ofs,count]: start..end
|
||||
MAP off=0, len=-1 [0-]
|
||||
[ofs,count]: start..end
|
||||
[0,1000]: BLOCKRANGE
|
||||
TRUNCATE off=2048000
|
||||
TRUNCATE off=500
|
||||
MAP off=0, len=-1 [0-]
|
||||
[ofs,count]: start..end
|
||||
[0,500]: BLOCKRANGE
|
||||
filesize = 2048000
|
||||
filesize = 500
|
||||
*** test 9 - reserve & truncate
|
||||
blocksize BSIZE
|
||||
CMD resvsp, off=0, len=4096000
|
||||
MAP off=0, len=4096000 [0,1000]
|
||||
CMD resvsp, off=0, len=1000
|
||||
MAP off=0, len=1000 [0,1000]
|
||||
[ofs,count]: start..end
|
||||
[0,1000]: BLOCKRANGE
|
||||
MAP off=0, len=-1 [0-]
|
||||
[ofs,count]: start..end
|
||||
[0,1000]: BLOCKRANGE
|
||||
TRUNCATE off=2048000
|
||||
TRUNCATE off=500
|
||||
MAP off=0, len=-1 [0-]
|
||||
[ofs,count]: start..end
|
||||
[0,1000]: BLOCKRANGE
|
||||
filesize = 2048000
|
||||
filesize = 500
|
||||
*** unmount
|
||||
|
||||
Reference in New Issue
Block a user