From 505c13b066547f41c80c90227be20259c0d22f35 Mon Sep 17 00:00:00 2001 From: Patrick Farrell Date: Wed, 7 Sep 2022 10:32:32 -0700 Subject: [PATCH] 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: 36c34af60767bd5da5e9a66df0297e1dc7fa1fb1 Signed-off-by: Patrick Farrell Change-Id: Ib66e8def571054df5117c279e238894bc3b58bce Reviewed-by: Andreas Dilger Reviewed-by: Yingjin Qian Reviewed-on: https://review.whamcloud.com/48455 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/llite/file.c | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/lustre/llite/file.c b/lustre/llite/file.c index c8ec4e5..2df083a 100644 --- a/lustre/llite/file.c +++ b/lustre/llite/file.c @@ -1730,19 +1730,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, @@ -1759,11 +1752,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; - } } /* -- 1.8.3.1