[Devel] [PATCH RHEL9 COMMIT] fs/fuse: pcs: badly aligned requests were not handled correctly
Konstantin Khorenko
khorenko at virtuozzo.com
Wed Mar 27 20:25:47 MSK 2024
The commit is pushed to "branch-rh9-5.14.0-362.8.1.vz9.35.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh9-5.14.0-362.8.1.vz9.35.16
------>
commit 46f5388b054afbc3efec1bd94356ddacdf5d07c6
Author: Alexey Kuznetsov <kuznet at virtuozzo.com>
Date: Wed Mar 27 22:57:33 2024 +0800
fs/fuse: pcs: badly aligned requests were not handled correctly
Mistakenly set error condition was not properly reset and did not
allow properly finished request to complete clean.
https://pmc.acronis.work/browse/VSTOR-83928
Signed-off-by: Alexey Kuznetsov <kuznet at acronis.com>
Feature: vStorage
---
fs/fuse/kio/pcs/pcs_cs_accel.c | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/fs/fuse/kio/pcs/pcs_cs_accel.c b/fs/fuse/kio/pcs/pcs_cs_accel.c
index d47486d0cb18..067598bec468 100644
--- a/fs/fuse/kio/pcs/pcs_cs_accel.c
+++ b/fs/fuse/kio/pcs/pcs_cs_accel.c
@@ -570,8 +570,6 @@ static inline int csa_submit(struct file * file, struct file *cfile, int do_csum
if (unlikely(ret != -EIOCBQUEUED)) {
if (ret != size) {
- pcs_set_error_cond_atomic(&ireq->error, PCS_ERR_IO, 1, ireq->iochunk.csl->cs[ireq->iochunk.cs_index].info.id);
-
/* Do not drop refs, we do not want to complete ireq. */
fput(areq->iocb.ki_filp);
FUSE_KTRACE(ireq->cc->fc, "AIO submit rejected ret=%d %lu, ireq:%p : %llu:%u+%u",
@@ -650,6 +648,7 @@ int pcs_csa_cs_submit(struct pcs_cs * cs, struct pcs_int_request * ireq)
/* Clear state which could be rewritten by csa_submit */
ireq->iochunk.msg.destructor = NULL;
ireq->iochunk.msg.rpc = NULL;
+ ireq->flags |= IREQ_F_NO_ACCEL;
}
}
}
@@ -1028,8 +1027,6 @@ static inline int csa_submit_write(struct file * file, struct pcs_int_request *
if (unlikely(ret != -EIOCBQUEUED)) {
if (ret != size) {
- pcs_set_error_cond_atomic(&ireq->error, PCS_ERR_IO, 1, ireq->iochunk.csl->cs[idx].info.id);
-
/* Do not drop refs, we do not want to complete ireq. */
fput(areq->iocb.ki_filp);
FUSE_KTRACE(ireq->cc->fc, "AIO submit rejected ret=%d %lu, ireq:%p : %llu:%u+%u",
More information about the Devel
mailing list