From: Alex Zhuravlev Date: Fri, 25 Apr 2025 02:49:03 +0000 (+0300) Subject: LU-18602 osc: don't block async enqueues X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=30c3fe01d93128ff636de1d3c12217a77b9fa623;p=fs%2Flustre-release.git LU-18602 osc: don't block async enqueues 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 Change-Id: Id1c6c71414b7387b9b0b191b65e34cf65388b57f Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57599 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Alexey Lyashkov Reviewed-by: Oleg Drokin Reviewed-by: Andreas Dilger --- diff --git a/lustre/osc/osc_request.c b/lustre/osc/osc_request.c index ab34b8c..cf5e0a7 100644 --- a/lustre/osc/osc_request.c +++ b/lustre/osc/osc_request.c @@ -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;