From: Patrick Farrell Date: Wed, 3 Aug 2022 16:45:37 +0000 (-0400) Subject: LU-15811 llite: Unify range unlock X-Git-Tag: 2.15.52~69 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=36c34af60767bd5da5e9a66df0297e1dc7fa1fb1;p=fs%2Flustre-release.git LU-15811 llite: Unify range unlock Correct parallel_dio condition and unify range unlock code block. Signed-off-by: Patrick Farrell Change-Id: Ib66e8def571054df5117c279e238894bc3b58bce Reviewed-on: https://review.whamcloud.com/48000 Tested-by: jenkins Reviewed-by: Andreas Dilger Tested-by: Maloo Reviewed-by: Yingjin Qian Reviewed-by: Oleg Drokin --- diff --git a/lustre/llite/file.c b/lustre/llite/file.c index ba5e959..cd440c3 100644 --- a/lustre/llite/file.c +++ b/lustre/llite/file.c @@ -1736,19 +1736,12 @@ restart: ll_cl_add(inode, env, io, LCC_RW); rc = cl_io_loop(env, io); ll_cl_remove(inode, env); - - if (range_locked && !is_parallel_dio) { - CDEBUG(D_VFSTRACE, "Range unlock "RL_FMT"\n", - RL_PARA(&range)); - range_unlock(&lli->lli_write_tree, &range); - range_locked = false; - } } else { /* cl_io_rw_init() handled IO */ rc = io->ci_result; } - if (is_parallel_dio) { + if (io->ci_dio_aio && !is_aio) { struct cl_sync_io *anchor = &io->ci_dio_aio->cda_sync; /* for dio, EIOCBQUEUED is an implementation detail, @@ -1765,11 +1758,13 @@ restart: rc2 = cl_sync_io_wait_recycle(env, anchor, 0, 0); if (rc2 < 0) rc = rc2; + } - if (range_locked) { - range_unlock(&lli->lli_write_tree, &range); + if (range_locked) { + CDEBUG(D_VFSTRACE, "Range unlock "RL_FMT"\n", + RL_PARA(&range)); + range_unlock(&lli->lli_write_tree, &range); range_locked = false; - } } /*