The commit is pushed to "branch-rh9-5.14.0-427.44.1.vz9.80.x-ovz" and will 
appear at g...@bitbucket.org:openvz/vzkernel.git
after rh9-5.14.0-427.44.1.vz9.80.36
------>
commit 2a9039e6434b6b8cce191ff399ebd5cb22fbdd18
Author: Liu Kui <kui....@virtuozzo.com>
Date:   Wed May 28 11:09:20 2025 +0800

    fs/fuse kio: add debug info to catch unexpected event
    
    We encountered a very strange problem that krpc returns a response
    msg without error, however the userspace still sees the original
    request msg header in the tx buf instead of the response msg header.
    We don't know how it happened, as there's no info from kernel. So
    here we try to catch such event by printing a warn message only,
    letting userpsace handle such exception.
    
    Related to #VSTOR-107235
    https://virtuozzo.atlassian.net/browse/VSTOR-107235
    
    Signed-off-by: Liu Kui <kui....@virtuozzo.com>
    Acked-by: Alexey Kuznetsov <kuz...@virtuozzo.com>
    
    Feature: fuse: kRPC - single RPC for kernel and userspace
---
 fs/fuse/kio/pcs/pcs_krpc.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/fs/fuse/kio/pcs/pcs_krpc.c b/fs/fuse/kio/pcs/pcs_krpc.c
index 9cc4e12b5eab5..8886fa5501ed0 100644
--- a/fs/fuse/kio/pcs/pcs_krpc.c
+++ b/fs/fuse/kio/pcs/pcs_krpc.c
@@ -85,10 +85,17 @@ static void krpc_req_complete(struct krpc_req *kreq, int 
error)
 {
        struct krpc_completion *comp = &kreq->completion;
        struct pcs_krpc *krpc = kreq->krpc;
+       struct pcs_rpc_hdr *h = (struct pcs_rpc_hdr *)kreq->hdr_buf;
 
        BUG_ON(!comp->xid);
 
        comp->result = error;
+       if (!comp->result && !(RPC_IS_RESPONSE(h->type))) {
+               /*
+                * This should never happen, catch the event if it happens.
+                */
+               WARN_ON_ONCE(1);
+       }
 
        kreq_release_data_chunks(kreq);
        if (kreq->hdr_chunk.mr)
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to