diff options
author | Zhang Yi <yi.zhang@huawei.com> | 2025-02-17 09:59:55 +0300 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2025-03-18 07:15:25 +0300 |
commit | 18aba2adb3e2a676fff0d81e51f5045f3c636666 (patch) | |
tree | 96a617fef375252735424cc3ee6146d7c81832d1 /scripts/gdb/linux/tasks.py | |
parent | 08be56fec0588972f6fd4a3ce4ced3265de43dd8 (diff) | |
download | linux-18aba2adb3e2a676fff0d81e51f5045f3c636666.tar.xz |
jbd2: fix off-by-one while erasing journal
In __jbd2_journal_erase(), the block_stop parameter includes the last
block of a contiguous region; however, the calculation of byte_stop is
incorrect, as it does not account for the bytes in that last block.
Consequently, the page cache is not cleared properly, which occasionally
causes the ext4/050 test to fail.
Since block_stop operates on inclusion semantics, it involves repeated
increments and decrements by 1, significantly increasing the complexity
of the calculations. Optimize the calculation and fix the incorrect
byte_stop by make both block_stop and byte_stop to use exclusion
semantics.
This fixes a failure in fstests ext4/050.
Fixes: 01d5d96542fd ("ext4: add discard/zeroout flags to journal flush")
Signed-off-by: Zhang Yi <yi.zhang@huawei.com>
Reviewed-by: Baokun Li <libaokun1@huawei.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Link: https://patch.msgid.link/20250217065955.3829229-1-yi.zhang@huaweicloud.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'scripts/gdb/linux/tasks.py')
0 files changed, 0 insertions, 0 deletions