Messages in this thread Patch in this message | | | Date | Mon, 17 Aug 2009 13:39:49 +0800 | From | Li Zefan <> | Subject | [PATCH 2/5] lock_dep: Fix missing entries in /proc/lock_chains |
| |
Two entries are missing in the output of /proc/lock_chains.
One is chains[1]. When lc_next() is called the 1st time, chains[0] is returned. And when it's called the 2nd time, chains[2] is returned.
The other missing ons is, when lc_start() is called the 2nd time, we should start from chains[@pos-1] but not chains[@pos], because pos == 0 is the header.
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> --- kernel/lockdep_proc.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/kernel/lockdep_proc.c b/kernel/lockdep_proc.c index 0c39f18..84c6b1e 100644 --- a/kernel/lockdep_proc.c +++ b/kernel/lockdep_proc.c @@ -160,8 +160,8 @@ static void *lc_next(struct seq_file *m, void *v, loff_t *pos) else { chain = v; - if (*pos < nr_lock_chains) - chain = lock_chains + *pos; + if (*pos - 1 < nr_lock_chains) + chain = lock_chains + (*pos - 1); else chain = NULL; } @@ -174,8 +174,8 @@ static void *lc_start(struct seq_file *m, loff_t *pos) if (*pos == 0) return SEQ_START_TOKEN; - if (*pos < nr_lock_chains) - return lock_chains + *pos; + if (*pos - 1 < nr_lock_chains) + return lock_chains + (*pos - 1); return NULL; } -- 1.6.3
| |