summaryrefslogtreecommitdiffstats
path: root/rust/helpers/task.c
diff options
context:
space:
mode:
authorLi Nan <linan122@huawei.com>2024-09-19 14:30:48 +0800
committerSong Liu <song@kernel.org>2024-10-17 11:35:36 -0700
commit62ce0782bbacd32ec10292b9bdd127330e9b6968 (patch)
treeccdbe69c2a7b6aac66e186454c945eb15105d2c0 /rust/helpers/task.c
parent42aafd8b48adac1c3b20fe5892b1b91b80c1a1e6 (diff)
downloadlinux-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