Commit 6feaec81 authored by Andreas Gruenbacher's avatar Andreas Gruenbacher
Browse files

gfs2: List traversal in do_promote is safe



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: default avatarAndreas Gruenbacher <agruenba@redhat.com>
parent 0befb851
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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)) {