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: Andreas Gruenbacher <agruenba@redhat.com>
This commit is contained in:
Родитель
0befb8511e
Коммит
6feaec8147
|
@ -534,11 +534,11 @@ done:
|
||||||
|
|
||||||
static int do_promote(struct gfs2_glock *gl)
|
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;
|
bool incompat_holders_demoted = false;
|
||||||
|
|
||||||
current_gh = find_first_strong_holder(gl);
|
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))
|
if (test_bit(HIF_HOLDER, &gh->gh_iflags))
|
||||||
continue;
|
continue;
|
||||||
if (!may_grant(gl, current_gh, gh)) {
|
if (!may_grant(gl, current_gh, gh)) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче