From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andreas Gruenbacher Date: Wed, 29 Jun 2022 18:37:10 +0200 Subject: [Cluster-devel] [PATCH 8/9] gfs2: List traversal in do_promote is safe In-Reply-To: <20220629163711.732931-1-agruenba@redhat.com> References: <20220629163711.732931-1-agruenba@redhat.com> Message-ID: <20220629163711.732931-9-agruenba@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit In do_promote(), we're never removing the current entry from the list and so the list traversal is actually safe. Switch back to list_for_each_entry(). Signed-off-by: Andreas Gruenbacher --- fs/gfs2/glock.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c index 2138460a7369..e79f17d6d001 100644 --- a/fs/gfs2/glock.c +++ b/fs/gfs2/glock.c @@ -534,11 +534,11 @@ int gfs2_instantiate(struct gfs2_holder *gh) static int do_promote(struct gfs2_glock *gl) { - struct gfs2_holder *gh, *tmp, *current_gh; + struct gfs2_holder *gh, *current_gh; bool incompat_holders_demoted = false; current_gh = find_first_strong_holder(gl); - list_for_each_entry_safe(gh, tmp, &gl->gl_holders, gh_list) { + list_for_each_entry(gh, &gl->gl_holders, gh_list) { if (test_bit(HIF_HOLDER, &gh->gh_iflags)) continue; if (!may_grant(gl, current_gh, gh)) { -- 2.35.1