From 435d86191185b178e2df53fb9d46003e19a5e937 Mon Sep 17 00:00:00 2001 From: Alex Zhuravlev Date: Sun, 4 Oct 2020 13:41:26 +0300 Subject: [PATCH] LU-14009 osd: missing ldiskfs_htree_unlock() in osd_ldiskfs_it_fill() Signed-off-by: Alex Zhuravlev Change-Id: I5d2242e0864cbaa72af096b263d8758966a6be22 Reviewed-on: https://review.whamcloud.com/40137 Reviewed-by: James Simmons Reviewed-by: Alexey Lyashkov Tested-by: jenkins Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/osd-ldiskfs/osd_handler.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lustre/osd-ldiskfs/osd_handler.c b/lustre/osd-ldiskfs/osd_handler.c index 554a26d..5c8c843 100644 --- a/lustre/osd-ldiskfs/osd_handler.c +++ b/lustre/osd-ldiskfs/osd_handler.c @@ -6690,18 +6690,13 @@ static int osd_ldiskfs_it_fill(const struct lu_env *env, filp->f_cred = current_cred(); rc = osd_security_file_alloc(filp); if (rc) - RETURN(rc); + GOTO(unlock, rc); filp->f_flags |= O_NOATIME; filp->f_mode |= FMODE_NONOTIFY; rc = iterate_dir(filp, &buf.ctx); if (rc) - RETURN(rc); - - if (hlock != NULL) - ldiskfs_htree_unlock(hlock); - else - up_read(&obj->oo_ext_idx_sem); + GOTO(unlock, rc); if (it->oie_rd_dirent == 0) { /* @@ -6715,6 +6710,11 @@ static int osd_ldiskfs_it_fill(const struct lu_env *env, it->oie_dirent = it->oie_buf; it->oie_it_dirent = 1; } +unlock: + if (hlock != NULL) + ldiskfs_htree_unlock(hlock); + else + up_read(&obj->oo_ext_idx_sem); RETURN(rc); } -- 1.8.3.1