[DRBD-cvs] r1920 - branches/drbd-0.7/drbd
drbd-cvs at lists.linbit.com
drbd-cvs at lists.linbit.com
Wed Aug 24 17:31:47 CEST 2005
Author: phil
Date: 2005-08-24 17:31:46 +0200 (Wed, 24 Aug 2005)
New Revision: 1920
Modified:
branches/drbd-0.7/drbd/drbd_proc.c
Log:
Make the new proc stuff to work on kernels older than 2.4.23
!! Do not propagate me to drbd-0.8 !!
Modified: branches/drbd-0.7/drbd/drbd_proc.c
===================================================================
--- branches/drbd-0.7/drbd/drbd_proc.c 2005-08-24 14:00:52 UTC (rev 1919)
+++ branches/drbd-0.7/drbd/drbd_proc.c 2005-08-24 15:31:46 UTC (rev 1920)
@@ -40,6 +40,7 @@
#include "drbd_int.h"
STATIC int drbd_proc_open(struct inode *inode, struct file *file);
+STATIC int drbd_seq_show(struct seq_file *seq, void *v);
struct proc_dir_entry *drbd_proc;
@@ -48,9 +49,33 @@
.open = drbd_proc_open,
.read = seq_read,
.llseek = seq_lseek,
- .release = single_release,
+ .release = seq_release,
};
+// We ommit single_open and single_release, since that is only available
+// after 2.4.23
+static void *single_start(struct seq_file *p, loff_t *pos)
+{
+ return NULL + (*pos == 0);
+}
+
+static void *single_next(struct seq_file *p, void *v, loff_t *pos)
+{
+ ++*pos;
+ return NULL;
+}
+
+static void single_stop(struct seq_file *p, void *v)
+{
+}
+
+struct seq_operations drbd_proc_seq_ops = {
+ .start = single_start,
+ .next = single_next,
+ .stop = single_stop,
+ .show = drbd_seq_show,
+};
+
/*lge
* progress bars shamelessly adapted from driver/md/md.c
* output looks like
@@ -255,7 +280,7 @@
STATIC int drbd_proc_open(struct inode *inode, struct file *file)
{
- return single_open(file, drbd_seq_show, PDE(inode)->data);
+ return seq_open(file, &drbd_proc_seq_ops);
}
/* PROC FS stuff end */
More information about the drbd-cvs
mailing list