Whamcloud - gitweb
LU-18602 osc: don't block async enqueues 99/57599/13
authorAlex Zhuravlev <bzzz@whamcloud.com>
Fri, 25 Apr 2025 02:49:03 +0000 (05:49 +0300)
committerOleg Drokin <green@whamcloud.com>
Tue, 17 Jun 2025 02:49:46 +0000 (02:49 +0000)
don't block async enqueue RPCs trying to resend, otherwise the client
can get into a deadlock awaiting for RPC pinning object-inodes at
umount:

CPU: 0 PID: 9863 Comm: umount
Call Trace:
 dump_stack+0x6e/0xa0
 lbug_with_loc.cold.4+0x5/0x63 [libcfs]
 lov_delete_composite+0x45b/0x680 [lov]
 lov_object_delete+0xc1/0x260 [lov]
 lu_object_free.isra.5+0x76/0x190 [obdclass]
 cl_inode_fini+0xeb/0x250 [lustre]
 ll_clear_inode+0x269/0x620 [lustre]
 ll_delete_inode+0x3b/0x140 [lustre]
 evict+0xbc/0x180
 dispose_list+0x38/0x60
 evict_inodes+0x12e/0x170
 generic_shutdown_super+0x2d/0xf0
 kill_anon_super+0x9/0x20
 deactivate_locked_super+0x24/0x60
 cleanup_mnt+0x36/0x70

Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: Id1c6c71414b7387b9b0b191b65e34cf65388b57f
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57599
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Alexey Lyashkov <alexey.lyashkov@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
lustre/osc/osc_request.c

index ab34b8c..cf5e0a7 100644 (file)
@@ -3246,6 +3246,8 @@ int osc_enqueue_base(struct obd_export *exp, struct ldlm_res_id *res_id,
                         */
                        aa->oa_lvb    = NULL;
                        aa->oa_flags  = NULL;
+                       /* don't block async enqueue RPCs trying to resend */
+                       req->rq_no_delay = req->rq_no_resend = 1;
                }
 
                req->rq_interpret_reply = osc_enqueue_interpret;