generic/563: tolerate small reads in "write -> read/write" sub-test
authorBoyang Xue <bxue@redhat.com>
Mon, 26 Apr 2021 14:56:20 +0000 (22:56 +0800)
committerEryu Guan <guaneryu@gmail.com>
Sun, 9 May 2021 13:50:22 +0000 (21:50 +0800)
commit69db2233f3570ca64e78300bcc04fef183775ee3
treeafb7835786576addf084fe0cec0cdafb656f542c
parent6be48523d41bb62ff48a7ad7da274393632de785
generic/563: tolerate small reads in "write -> read/write" sub-test

On ext2/ext3, it's expected that several single block metadata reads
can occur when writing to file in the same cgroup (the stack is like
below[1]). The purpose of the "write -> read/write" subtest is to
make sure the larger pwrite is accounted to the correct cgroup, not
necessarily enforce that zero bytes are read in service of the
write. This patch fixes the sub-test in order to tolerate small
reads in 1st cgroup.

[1] Callchain of the read:

@ext3_read_bio[
    submit_bio+1
    submit_bh_wbc+365
    ext4_read_bh+72
    ext4_get_branch+201
    ext4_ind_map_blocks+382
    ext4_map_blocks+295
    _ext4_get_block+170
    __block_write_begin_int+328
    ext4_write_begin+541
    generic_perform_write+213
    ext4_buffered_write_iter+167
    new_sync_write+345
    vfs_write+438
    __x64_sys_pwrite64+140
    do_syscall_64+51
    entry_SYSCALL_64_after_hwframe+68
, 5793, 12]: 3

Signed-off-by: Boyang Xue <bxue@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
tests/generic/563