Skip to content

Commit

Permalink
lockdep: Simplify lockdep seqfile code
Browse files Browse the repository at this point in the history
Use seq_list_start_head() and seq_list_next().

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Cc: Peter Zijlstra <peterz@infradead.org>
LKML-Reference: <4A88ED41.5000000@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Li Zefan authored and Ingo Molnar committed Aug 17, 2009
1 parent e9d6572 commit 8109e1d
Showing 1 changed file with 5 additions and 41 deletions.
46 changes: 5 additions & 41 deletions kernel/lockdep_proc.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,38 +25,12 @@

static void *l_next(struct seq_file *m, void *v, loff_t *pos)
{
struct lock_class *class;

(*pos)++;

if (v == SEQ_START_TOKEN)
class = m->private;
else {
class = v;

if (class->lock_entry.next != &all_lock_classes)
class = list_entry(class->lock_entry.next,
struct lock_class, lock_entry);
else
class = NULL;
}

return class;
return seq_list_next(v, &all_lock_classes, pos);
}

static void *l_start(struct seq_file *m, loff_t *pos)
{
struct lock_class *class;
loff_t i = 0;

if (*pos == 0)
return SEQ_START_TOKEN;

list_for_each_entry(class, &all_lock_classes, lock_entry) {
if (++i == *pos)
return class;
}
return NULL;
return seq_list_start_head(&all_lock_classes, *pos);
}

static void l_stop(struct seq_file *m, void *v)
Expand All @@ -82,11 +56,11 @@ static void print_name(struct seq_file *m, struct lock_class *class)

static int l_show(struct seq_file *m, void *v)
{
struct lock_class *class = v;
struct lock_class *class = list_entry(v, struct lock_class, lock_entry);
struct lock_list *entry;
char usage[LOCK_USAGE_CHARS];

if (v == SEQ_START_TOKEN) {
if (v == &all_lock_classes) {
seq_printf(m, "all lock classes:\n");
return 0;
}
Expand Down Expand Up @@ -128,17 +102,7 @@ static const struct seq_operations lockdep_ops = {

static int lockdep_open(struct inode *inode, struct file *file)
{
int res = seq_open(file, &lockdep_ops);
if (!res) {
struct seq_file *m = file->private_data;

if (!list_empty(&all_lock_classes))
m->private = list_entry(all_lock_classes.next,
struct lock_class, lock_entry);
else
m->private = NULL;
}
return res;
return seq_open(file, &lockdep_ops);
}

static const struct file_operations proc_lockdep_operations = {
Expand Down

0 comments on commit 8109e1d

Please sign in to comment.