Ocfs2: Handle empty list in lockres_seq_start() for dlmdebug.c
This patch tries to handle the case in which list 'dlm->tracking_list' is empty, to avoid accessing an invalid pointer. It fixes the following oops: http://oss.oracle.com/bugzilla/show_bug.cgi?id=1287 Signed-off-by: Tristan Ye <tristan.ye@oracle.com> Signed-off-by: Joel Becker <joel.becker@oracle.com>
This commit is contained in:
parent
0f4da216b8
commit
228ac63577
1 changed files with 8 additions and 1 deletions
|
@ -636,8 +636,14 @@ static void *lockres_seq_start(struct seq_file *m, loff_t *pos)
|
|||
spin_lock(&dlm->track_lock);
|
||||
if (oldres)
|
||||
track_list = &oldres->tracking;
|
||||
else
|
||||
else {
|
||||
track_list = &dlm->tracking_list;
|
||||
if (list_empty(track_list)) {
|
||||
dl = NULL;
|
||||
spin_unlock(&dlm->track_lock);
|
||||
goto bail;
|
||||
}
|
||||
}
|
||||
|
||||
list_for_each_entry(res, track_list, tracking) {
|
||||
if (&res->tracking == &dlm->tracking_list)
|
||||
|
@ -660,6 +666,7 @@ static void *lockres_seq_start(struct seq_file *m, loff_t *pos)
|
|||
} else
|
||||
dl = NULL;
|
||||
|
||||
bail:
|
||||
/* passed to seq_show */
|
||||
return dl;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue