public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] procfs: fix numbering in /proc/locks
@ 2010-09-30 12:38 Jerome Marchand
  2010-10-01  7:03 ` Américo Wang
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Jerome Marchand @ 2010-09-30 12:38 UTC (permalink / raw)
  To: Matthew Wilcox; +Cc: Pavel Emelyanov, Linux Kernel Mailing List


The lock number in /proc/locks (first field) is implemented by a counter
(private field of struct seq_file) which is incremented at each call of
locks_show() and reset to 1 in locks_start() whatever the offset is. It
should be reset according to the actual position in the list.

Moreover, locks_show() can be called twice to print a single line thus
skipping a number. The counter should be incremented in locks_next().

Signed-off-by: Jerome Marchand <jmarchan@redhat.com>
---
 locks.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/locks.c b/fs/locks.c
index ab24d49..49d7343 100644
--- a/fs/locks.c
+++ b/fs/locks.c
@@ -2166,19 +2166,19 @@ static int locks_show(struct seq_file *f, void *v)
 	list_for_each_entry(bfl, &fl->fl_block, fl_block)
 		lock_get_status(f, bfl, (long)f->private, " ->");
 
-	f->private++;
 	return 0;
 }
 
 static void *locks_start(struct seq_file *f, loff_t *pos)
 {
 	lock_kernel();
-	f->private = (void *)1;
+	f->private = (void *) (*pos + 1);
 	return seq_list_start(&file_lock_list, *pos);
 }
 
 static void *locks_next(struct seq_file *f, void *v, loff_t *pos)
 {
+	f->private++;
 	return seq_list_next(v, &file_lock_list, pos);
 }
 

^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2010-10-22 21:27 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-30 12:38 [PATCH v2] procfs: fix numbering in /proc/locks Jerome Marchand
2010-10-01  7:03 ` Américo Wang
2010-10-01  7:13 ` Pavel Emelyanov
2010-10-05 12:14 ` Jerome Marchand
2010-10-06 10:36   ` Américo Wang
2010-10-07 23:27   ` Andrew Morton
2010-10-08  8:29     ` Jerome Marchand
2010-10-15 11:32     ` [PATCH v3] " Jerome Marchand
2010-10-22 21:27       ` Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox