]> www.infradead.org Git - nvme.git/commit
md: ensure child flush IO does not affect origin bio->bi_status
authorLi Nan <linan122@huawei.com>
Thu, 19 Sep 2024 06:30:48 +0000 (14:30 +0800)
committerSong Liu <song@kernel.org>
Thu, 17 Oct 2024 18:35:36 +0000 (11:35 -0700)
commit62ce0782bbacd32ec10292b9bdd127330e9b6968
treeccdbe69c2a7b6aac66e186454c945eb15105d2c0
parent42aafd8b48adac1c3b20fe5892b1b91b80c1a1e6
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>
drivers/md/md.c