From 5fadec7e32916f0640058fdcc62e178b961a553a Mon Sep 17 00:00:00 2001 From: Jan Musial Date: Thu, 19 Sep 2024 14:50:06 +0200 Subject: [PATCH] Clean dirty requests in WI Signed-off-by: Jan Musial Signed-off-by: Michal Mielewczyk --- src/engine/engine_wi.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/engine/engine_wi.c b/src/engine/engine_wi.c index d2bf8cc..9a6d6f1 100644 --- a/src/engine/engine_wi.c +++ b/src/engine/engine_wi.c @@ -133,6 +133,19 @@ static int _ocf_write_wi_core_write(struct ocf_request *req) /* Get OCF request - increase reference counter */ ocf_req_get(req); + if (req->info.dirty_any) { + ocf_hb_req_prot_lock_rd(req); + /* Need to clean, start it */ + ocf_engine_clean(req); + ocf_hb_req_prot_unlock_rd(req); + + /* The processing shall be resumed once the async cleaning + ends */ + ocf_req_put(req); + + return 0; + } + env_atomic_set(&req->req_remaining, 1); /* One core IO */ OCF_DEBUG_RQ(req, "Submit");