[Devel] [PATCH VZ9 1/3] fs/fuse: pcs: badly aligned requests were not handled correctly

Alexey Kuznetsov kuznet at virtuozzo.com
Wed Mar 27 17:57:33 MSK 2024


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>
---
 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 d47486d..067598b 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",
-- 
1.8.3.1



More information about the Devel mailing list