Whamcloud - gitweb
LU-6261 gnilnd: Add pkey module parameter
[fs/lustre-release.git] / libcfs / libcfs / module.c
index 29ca9d2..62793ea 100644 (file)
@@ -27,7 +27,7 @@
  * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  *
- * Copyright (c) 2012, Intel Corporation.
+ * Copyright (c) 2012, 2014, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
 #include <libcfs/libcfs.h>
 #include <libcfs/libcfs_crypto.h>
 #include <lnet/lib-lnet.h>
-#include <lnet/lib-dlc.h>
-#include <lnet/lnet.h>
-#include <lnet/nidstr.h>
-#include "tracefile.h"
 
 static void
 kportal_memhog_free (struct libcfs_device_userstate *ldu)
@@ -119,7 +115,7 @@ kportal_memhog_alloc(struct libcfs_device_userstate *ldu, int npages,
        while (ldu->ldu_memhog_pages < npages &&
               count1 < PAGE_CACHE_SIZE/sizeof(struct page *)) {
 
-               if (cfs_signal_pending())
+               if (signal_pending(current))
                        return -EINTR;
 
                *level1p = alloc_page(flags);
@@ -134,7 +130,7 @@ kportal_memhog_alloc(struct libcfs_device_userstate *ldu, int npages,
                while (ldu->ldu_memhog_pages < npages &&
                       count2 < PAGE_CACHE_SIZE/sizeof(struct page *)) {
 
-                       if (cfs_signal_pending())
+                       if (signal_pending(current))
                                return -EINTR;
 
                        *level2p = alloc_page(flags);
@@ -187,8 +183,8 @@ static int libcfs_psdev_release(unsigned long flags, void *args)
        RETURN(0);
 }
 
-static struct rw_semaphore ioctl_list_sem;
-static struct list_head ioctl_list;
+static DECLARE_RWSEM(ioctl_list_sem);
+static LIST_HEAD(ioctl_list);
 
 int libcfs_register_ioctl(struct libcfs_ioctl_handler *hand)
 {
@@ -289,15 +285,17 @@ static int libcfs_ioctl(struct cfs_psdev_file *pfile,
                        if (err == -EINVAL)
                                continue;
 
-                       if (err == 0)
-                               err = libcfs_ioctl_popdata(hdr, uparam);
+                       if (err == 0) {
+                               if (copy_to_user(uparam, hdr, hdr->ioc_len))
+                                       err = -EFAULT;
+                       }
                        break;
                }
                up_read(&ioctl_list_sem);
                break; }
        }
 out:
-       libcfs_ioctl_freedata(hdr);
+       LIBCFS_FREE(hdr, hdr->ioc_len);
        RETURN(err);
 }
 
@@ -309,22 +307,10 @@ struct cfs_psdev_ops libcfs_psdev_ops = {
         libcfs_ioctl
 };
 
-MODULE_AUTHOR("Peter J. Braam <braam@clusterfs.com>");
-MODULE_DESCRIPTION("Portals v3.1");
-MODULE_LICENSE("GPL");
-
 static int init_libcfs_module(void)
 {
        int rc;
 
-       libcfs_arch_init();
-       libcfs_init_nidstrings();
-       init_rwsem(&cfs_tracefile_sem);
-       mutex_init(&cfs_trace_thread_mutex);
-       init_rwsem(&ioctl_list_sem);
-       INIT_LIST_HEAD(&ioctl_list);
-       init_waitqueue_head(&cfs_race_waitq);
-
        rc = libcfs_debug_init(5 * 1024 * 1024);
        if (rc < 0) {
                printk(KERN_ERR "LustreError: libcfs_debug_init: %d\n", rc);
@@ -415,11 +401,12 @@ static void exit_libcfs_module(void)
        if (rc)
                printk(KERN_ERR "LustreError: libcfs_debug_cleanup: %d\n",
                       rc);
-
-       fini_rwsem(&ioctl_list_sem);
-       fini_rwsem(&cfs_tracefile_sem);
-
-       libcfs_arch_cleanup();
 }
 
-cfs_module(libcfs, "1.0.0", init_libcfs_module, exit_libcfs_module);
+MODULE_AUTHOR("Peter J. Braam <braam@clusterfs.com>");
+MODULE_DESCRIPTION("Libcfs v3.1");
+MODULE_VERSION("1.0.0");
+MODULE_LICENSE("GPL");
+
+module_init(init_libcfs_module);
+module_exit(exit_libcfs_module);