From 86868afde5a5ebfda9aa8560a464c046d97d14d6 Mon Sep 17 00:00:00 2001 From: Shaun Tancheff Date: Wed, 2 Sep 2020 09:05:10 -0500 Subject: [PATCH] LU-13940 llite: it_lock_bits should be bit-wise tested If lock_mode is not set then ensure that it_lock_bits has the MDS_INODELOCK_OPEN bit set Fixes: 5db0e2de00 ("LU-7403 llite: flatten struct lookup_intent") HPE-bug-id: LUS-9198 Signed-off-by: Shaun Tancheff Change-Id: Icccaa59cd5b47a7d3f97569a452f34b33e905409 Reviewed-on: https://review.whamcloud.com/39797 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Petros Koutoupis Reviewed-by: Andreas Dilger Reviewed-by: Yingjin Qian --- lustre/llite/file.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lustre/llite/file.c b/lustre/llite/file.c index 927fe8b..9067dfd 100644 --- a/lustre/llite/file.c +++ b/lustre/llite/file.c @@ -1158,8 +1158,8 @@ ll_lease_open(struct inode *inode, struct file *file, fmode_t fmode, /* already get lease, handle lease lock */ ll_set_lock_data(sbi->ll_md_exp, inode, &it, NULL); - if (it.it_lock_mode == 0 || - it.it_lock_bits != MDS_INODELOCK_OPEN) { + if (!it.it_lock_mode || + !(it.it_lock_bits & MDS_INODELOCK_OPEN)) { /* open lock must return for lease */ CERROR(DFID "lease granted but no open lock, %d/%llu.\n", PFID(ll_inode2fid(inode)), it.it_lock_mode, -- 1.8.3.1