[Devel] [PATCH RHEL8 COMMIT] fuse: deadlock in map request

Konstantin Khorenko khorenko at virtuozzo.com
Mon Jun 21 12:56:21 MSK 2021


The commit is pushed to "branch-rh8-4.18.0-240.1.1.vz8.5.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh8-4.18.0-240.1.1.vz8.5.46
------>
commit 031956af43bbc09afef4bf7a577d1f265a97e5d9
Author: Alexey Kuznetsov <kuznet at acronis.com>
Date:   Sun Jun 20 17:01:34 2021 +0000

    fuse: deadlock in map request
    
    Good news: even looking awful, the bug is actually minor one,
    rhel8 "simplified" fuse replacing sequence of simple LEGO functions
    from which we could build anything with one montstrous megafunction
    with lots of arguments, making code shorter, but totally unintelligible.
    It is not wonderful that in one place the translation was done not quite correctly.
    
    No doubts, it is not the last thing of this kind, testing will show.
    
    Affects: #VSTOR-43521
    https://jira.sw.ru/browse/PSBM-129289
    
    Signed-off-by: Alexey Kuznetsov <kuznet at acronis.com>
---
 fs/fuse/kio/pcs/pcs_fuse_kdirect.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/fuse/kio/pcs/pcs_fuse_kdirect.c b/fs/fuse/kio/pcs/pcs_fuse_kdirect.c
index ffaa1dbb4dc7..afe4cf7c7f97 100644
--- a/fs/fuse/kio/pcs/pcs_fuse_kdirect.c
+++ b/fs/fuse/kio/pcs/pcs_fuse_kdirect.c
@@ -593,6 +593,8 @@ int fuse_map_resolve(struct pcs_map_entry *m, int direction)
 	ia->ioctl.ctx = reply_work;
 	ia->ap.args.end = pcs_fuse_reply_handle;
 	ia->ap.args.nonblocking = true;
+	ia->ap.args.force = true;
+	ia->ap.args.nocreds = true;
 
 	err = fuse_simple_background(fc, &ia->ap.args, GFP_NOIO);
 	if (err)


More information about the Devel mailing list