From 829a3a93d43e4d080bfbbff2d8faa89f786f4e69 Mon Sep 17 00:00:00 2001 From: Andriy Skulysh Date: Wed, 1 Apr 2020 21:20:58 +0300 Subject: [PATCH] LU-13987 ldlm: Don't re-enqueue glimpse lock on read cl_glimpse_lock() doesn't match a lock with LDLM_FL_BL_AST even if this lock is acquired by the same thread earlier. It needs only size to check for spare file, so let't add LDLM_FL_CBPENDING to match flags. #1 [ffff9ba7326036f0] schedule at ffffffff87b67c49 #2 [ffff9ba732603700] obd_get_request_slot at ffffffffc0dbe0a4 [obdclass] #3 [ffff9ba7326037b8] ldlm_cli_enqueue at ffffffffc0faedce [ptlrpc] #4 [ffff9ba732603878] mdc_enqueue_send at ffffffffc11b38a8 [mdc] #5 [ffff9ba732603938] mdc_lock_enqueue at ffffffffc11b3eb2 [mdc] #6 [ffff9ba7326039a8] cl_lock_enqueue at ffffffffc0dfee95 [obdclass] #7 [ffff9ba7326039e0] lov_lock_enqueue at ffffffffc10ef265 [lov] #8 [ffff9ba732603a20] cl_lock_enqueue at ffffffffc0dfee95 [obdclass] #9 [ffff9ba732603a58] cl_lock_request at ffffffffc0dff54b [obdclass] HPE-bug-id: LUS-8690 Change-Id: I4c3820f754ceb502079bdd7d8e1a5389f6696eba Signed-off-by: Andriy Skulysh Reviewed-by: Vitaly Fertman Reviewed-by: Alexander Boyko Reviewed-by: Andrew Perepechko Tested-by: Elena Gryaznova Reviewed-on: https://review.whamcloud.com/40044 Reviewed-by: Alexander Boyko Tested-by: jenkins Tested-by: Maloo Reviewed-by: Vitaly Fertman Reviewed-by: Oleg Drokin --- lustre/include/lustre_osc.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lustre/include/lustre_osc.h b/lustre/include/lustre_osc.h index 6432a59..de848ae 100644 --- a/lustre/include/lustre_osc.h +++ b/lustre/include/lustre_osc.h @@ -186,7 +186,7 @@ static inline __u64 osc_enq2ldlm_flags(__u32 enqflags) if (enqflags & CEF_NONBLOCK) result |= LDLM_FL_BLOCK_NOWAIT; if (enqflags & CEF_GLIMPSE) - result |= LDLM_FL_HAS_INTENT; + result |= LDLM_FL_HAS_INTENT|LDLM_FL_CBPENDING; if (enqflags & CEF_DISCARD_DATA) result |= LDLM_FL_AST_DISCARD_DATA; if (enqflags & CEF_PEEK) -- 1.8.3.1