From: Patrick Farrell Date: Wed, 20 Jul 2022 16:46:21 +0000 (-0400) Subject: LU-15811 llite: Unify range unlock X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=cfda372a8bbe1f64f77989f7373ea70568b3bd1a;p=fs%2Flustre-release.git LU-15811 llite: Unify range unlock Correct parallel_dio condition and unify range unlock code block. Lustre-change: https://review.whamcloud.com/48000/ Lustre-commit: 84064c8e8112aed2e49d2dcd6b4f1c6a21770261 (tbd) Signed-off-by: Patrick Farrell Change-Id: Ib66e8def571054df5117c279e238894bc3b58bce Reviewed-on: https://review.whamcloud.com/47999 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Yingjin Qian Reviewed-by: Andreas Dilger --- diff --git a/lustre/llite/file.c b/lustre/llite/file.c index b8f4f56..c6d6d311 100644 --- a/lustre/llite/file.c +++ b/lustre/llite/file.c @@ -1745,19 +1745,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, @@ -1774,11 +1767,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; - } } /*