]> err.no Git - linux-2.6/blobdiff - drivers/isdn/divert/divert_procfs.c
Merge branch 'for-2.6.26' of master.kernel.org:/pub/scm/linux/kernel/git/jwboyer...
[linux-2.6] / drivers / isdn / divert / divert_procfs.c
index 1b37d86d5ee13f4b3cb0dac5714eb4ecf44f043e..8b256a617c8a4524cec9f503ef7371ebbf30356b 100644 (file)
@@ -9,16 +9,15 @@
  *
  */
 
-#include <linux/config.h>
 #include <linux/module.h>
 #include <linux/poll.h>
-#include <linux/smp_lock.h>
 #ifdef CONFIG_PROC_FS
 #include <linux/proc_fs.h>
 #else
 #include <linux/fs.h>
 #endif
 #include <linux/isdnif.h>
+#include <net/net_namespace.h>
 #include "isdn_divert.h"
 
 
@@ -46,7 +45,7 @@ put_info_buffer(char *cp)
                return;
        if (!*cp)
                return;
-       if (!(ib = (struct divert_info *) kmalloc(sizeof(struct divert_info) + strlen(cp), GFP_ATOMIC)))
+       if (!(ib = kmalloc(sizeof(struct divert_info) + strlen(cp), GFP_ATOMIC)))
                 return;        /* no memory */
        strcpy(ib->info_start, cp);     /* set output string */
        ib->next = NULL;
@@ -72,6 +71,8 @@ put_info_buffer(char *cp)
        wake_up_interruptible(&(rd_queue));
 }                              /* put_info_buffer */
 
+#ifdef CONFIG_PROC_FS
+
 /**********************************/
 /* deflection device read routine */
 /**********************************/
@@ -255,9 +256,7 @@ isdn_divert_ioctl(struct inode *inode, struct file *file,
        return copy_to_user((void __user *)arg, &dioctl, sizeof(dioctl)) ? -EFAULT : 0;
 }                              /* isdn_divert_ioctl */
 
-
-#ifdef CONFIG_PROC_FS
-static struct file_operations isdn_fops =
+static const struct file_operations isdn_fops =
 {
        .owner          = THIS_MODULE,
        .llseek         = no_llseek,
@@ -286,16 +285,15 @@ divert_dev_init(void)
        init_waitqueue_head(&rd_queue);
 
 #ifdef CONFIG_PROC_FS
-       isdn_proc_entry = proc_mkdir("net/isdn", NULL);
+       isdn_proc_entry = proc_mkdir("isdn", init_net.proc_net);
        if (!isdn_proc_entry)
                return (-1);
-       isdn_divert_entry = create_proc_entry("divert", S_IFREG | S_IRUGO, isdn_proc_entry);
+       isdn_divert_entry = proc_create("divert", S_IFREG | S_IRUGO,
+                                       isdn_proc_entry, &isdn_fops);
        if (!isdn_divert_entry) {
-               remove_proc_entry("net/isdn", NULL);
+               remove_proc_entry("isdn", init_net.proc_net);
                return (-1);
        }
-       isdn_divert_entry->proc_fops = &isdn_fops; 
-       isdn_divert_entry->owner = THIS_MODULE; 
 #endif /* CONFIG_PROC_FS */
 
        return (0);
@@ -311,7 +309,7 @@ divert_dev_deinit(void)
 
 #ifdef CONFIG_PROC_FS
        remove_proc_entry("divert", isdn_proc_entry);
-       remove_proc_entry("net/isdn", NULL);
+       remove_proc_entry("isdn", init_net.proc_net);
 #endif /* CONFIG_PROC_FS */
 
        return (0);