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 <kuz...@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 <kuz...@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",
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to