Commit 1751c6ad authored by Li Ruilin's avatar Li Ruilin Committed by Zheng Zengkai
Browse files

bcache: Delay to invalidate cache data in writearound write

euleros inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I4LOJ6


CVE: NA

------------------------------

In writearound cache mode, read request quickly followed by write
request may overwrite the invalidate bkey inserted by the write
request.

The function bch_data_insert() is invoked asynchronously as the bio
subbmited to backend block device, therefore there may be a read
request subbmited after the bch_data_insert() done and ended before
the backend bio is end. This read request will read data from the
backend block device, and insert dirty data to cache device. However
by writearound cache mode, bcache will not invalidate data again,
so that read request after will read dirty data from the cache,
causing a data corruption.

By this patch we delay the invalidation to end of backend bio to
avoid this corruption.

Signed-off-by: default avatarLi Ruilin <liruilin4@huawei.com>
Reviewed-by: default avatarLuan Jianhai <luanjianhai@huawei.com>
Reviewed-by: default avatarPeng Junyi <pengjunyi1@huawei.com>
Acked-by: default avatarXie Xiuqi <xiexiuqi@huawei.com>
Signed-off-by: default avatarCheng Jian <cj.chengjian@huawei.com>
Reviewed-by: default avatarGuangxing Deng <dengguangxing@huawei.com>
Reviewed-by: default avatarchao song <chao.song@huawei.com>
Reviewed-by: default avatarchao song <chao.song@huawei.com>
Reviewed-by: default avatarchao song <chao.song@huawei.com>
Reviewed-by: default avatarchao song <chao.song@huawei.com>
Signed-off-by: default avatarZheng Zengkai <zhengzengkai@huawei.com>
parent 08a3ac0e
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment