[Devel] [PATCH RHEL9 COMMIT] fuse: do not accelerate writes with unknown dirty state
Konstantin Khorenko
khorenko at virtuozzo.com
Wed Nov 1 22:47:56 MSK 2023
The commit is pushed to "branch-rh9-5.14.0-284.25.1.vz9.30.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh9-5.14.0-284.25.1.vz9.30.8
------>
commit a16b045d56c6b214038db4bd5d12607a99bce552
Author: Alexey Kuznetsov <kuznet at virtuozzo.com>
Date: Fri Oct 6 18:43:48 2023 +0800
fuse: do not accelerate writes with unknown dirty state
If we have no sync seq numbers we cannot force dirty status.
So, route writes via slow path. When CSes reply with dirty seqs,
we will be able to make shortcut.
https://pmc.acronis.work/browse/VSTOR-54040
Signed-off-by: Alexey Kuznetsov <kuznet at acronis.com>
Feature: vStorage
---
fs/fuse/kio/pcs/pcs_cs_accel.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/fs/fuse/kio/pcs/pcs_cs_accel.c b/fs/fuse/kio/pcs/pcs_cs_accel.c
index 6db4562d38bf..d47486d0cb18 100644
--- a/fs/fuse/kio/pcs/pcs_cs_accel.c
+++ b/fs/fuse/kio/pcs/pcs_cs_accel.c
@@ -1123,6 +1123,9 @@ struct pcs_int_request * pcs_csa_csl_write_submit(struct pcs_int_request * ireq)
ireq_init_acr(ireq);
for (idx = 0; idx < csl->nsrv; idx++) {
+ /* If dirty status is unknown go to slow path to get a seed */
+ if (csl->cs[idx].sync.dirty_seq == 0)
+ break;
if (!csa_cs_submit_write(ireq, idx))
break;
}
@@ -1171,6 +1174,8 @@ int pcs_csa_csl_write_submit_single(struct pcs_int_request * ireq, int idx)
{
if (idx >= PCS_MAX_ACCEL_CS)
return 0;
+ if (ireq->iochunk.csl->cs[idx].sync.dirty_seq == 0)
+ return 0;
ireq_init_acr(ireq);
More information about the Devel
mailing list