diff options
author | Li Nan <linan122@huawei.com> | 2024-09-19 14:30:48 +0800 |
---|---|---|
committer | Song Liu <song@kernel.org> | 2024-10-17 11:35:36 -0700 |
commit | 62ce0782bbacd32ec10292b9bdd127330e9b6968 (patch) | |
tree | ccdbe69c2a7b6aac66e186454c945eb15105d2c0 /rust/helpers/task.c | |
parent | 42aafd8b48adac1c3b20fe5892b1b91b80c1a1e6 (diff) | |
download | linux-62ce0782bbacd32ec10292b9bdd127330e9b6968.tar.gz linux-62ce0782bbacd32ec10292b9bdd127330e9b6968.tar.bz2 linux-62ce0782bbacd32ec10292b9bdd127330e9b6968.zip |
md: ensure child flush IO does not affect origin bio->bi_status
When a flush is issued to an RAID array, a child flush IO is created and
issued for each member disk in the RAID array. Since commit b75197e86e6d
("md: Remove flush handling"), each child flush IO has been chained with
the original bio. As a result, the failure of any child IO could modify
the bi_status of the original bio, potentially impacting the upper-layer
filesystem.
Fix the issue by preventing child flush IO from altering the original
bio->bi_status as before. However, this design introduces a known
issue: in the event of a power failure, if a flush IO on a member
disk fails, the upper layers may not be informed. This issue is not easy
to fix and will not be addressed for the time being in this issue.
Fixes: b75197e86e6d ("md: Remove flush handling")
Signed-off-by: Li Nan <linan122@huawei.com>
Reviewed-by: Yu Kuai <yukuai3@huawei.com>
Link: https://lore.kernel.org/r/20240919063048.2887579-1-linan666@huaweicloud.com
Signed-off-by: Song Liu <song@kernel.org>
Diffstat (limited to 'rust/helpers/task.c')
0 files changed, 0 insertions, 0 deletions