diff options
author | Song Liu <songliubraving@fb.com> | 2017-05-11 17:03:44 -0700 |
---|---|---|
committer | Shaohua Li <shli@fb.com> | 2017-05-11 22:14:40 -0700 |
commit | 5ddf0440a1a28f00f69ed2e093476bab3b60c2c3 (patch) | |
tree | 33a11155215f93288b40d300839a58f3c13b7f8c /mm/slob.c | |
parent | 70d466f760b351fe30b5f8c956354ddf29aa676b (diff) | |
download | linux-5ddf0440a1a28f00f69ed2e093476bab3b60c2c3.tar.gz linux-5ddf0440a1a28f00f69ed2e093476bab3b60c2c3.tar.bz2 linux-5ddf0440a1a28f00f69ed2e093476bab3b60c2c3.zip |
md/r5cache: handle sync with data in write back cache
Currently, sync of raid456 array cannot make progress when hitting
data in writeback r5cache.
This patch fixes this issue by flushing cached data of the stripe
before processing the sync request. This is achived by:
1. In handle_stripe(), do not set STRIPE_SYNCING if the stripe is
in write back cache;
2. In r5c_try_caching_write(), handle the stripe in sync with write
through;
3. In do_release_stripe(), make stripe in sync write out and send
it to the state machine.
Shaohua: explictly set STRIPE_HANDLE after write out completed
Signed-off-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Diffstat (limited to 'mm/slob.c')
0 files changed, 0 insertions, 0 deletions