Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
b=23820 Handle unsent requests with rq_net_err in ptlrpc_check_set()
[fs/lustre-release.git]
/
libcfs
/
libcfs
/
module.c
diff --git
a/libcfs/libcfs/module.c
b/libcfs/libcfs/module.c
index
a5a8071
..
a25df4a
100644
(file)
--- a/
libcfs/libcfs/module.c
+++ b/
libcfs/libcfs/module.c
@@
-26,7
+26,7
@@
* GPL HEADER END
*/
/*
* GPL HEADER END
*/
/*
- * Copyright
2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright
(c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*/
/*
* Use is subject to license terms.
*/
/*
@@
-187,19
+187,19
@@
static int libcfs_psdev_release(unsigned long flags, void *args)
RETURN(0);
}
RETURN(0);
}
-static
struct rw_semaphore
ioctl_list_sem;
-static
struct list_head
ioctl_list;
+static
cfs_rw_semaphore_t
ioctl_list_sem;
+static
cfs_list_t
ioctl_list;
int libcfs_register_ioctl(struct libcfs_ioctl_handler *hand)
{
int rc = 0;
int libcfs_register_ioctl(struct libcfs_ioctl_handler *hand)
{
int rc = 0;
- down_write(&ioctl_list_sem);
- if (!list_empty(&hand->item))
+
cfs_
down_write(&ioctl_list_sem);
+ if (!
cfs_
list_empty(&hand->item))
rc = -EBUSY;
else
rc = -EBUSY;
else
- list_add_tail(&hand->item, &ioctl_list);
- up_write(&ioctl_list_sem);
+
cfs_
list_add_tail(&hand->item, &ioctl_list);
+
cfs_
up_write(&ioctl_list_sem);
return rc;
}
return rc;
}
@@
-209,12
+209,12
@@
int libcfs_deregister_ioctl(struct libcfs_ioctl_handler *hand)
{
int rc = 0;
{
int rc = 0;
- down_write(&ioctl_list_sem);
- if (list_empty(&hand->item))
+
cfs_
down_write(&ioctl_list_sem);
+ if (
cfs_
list_empty(&hand->item))
rc = -ENOENT;
else
rc = -ENOENT;
else
- list_del_init(&hand->item);
- up_write(&ioctl_list_sem);
+
cfs_
list_del_init(&hand->item);
+
cfs_
up_write(&ioctl_list_sem);
return rc;
}
return rc;
}
@@
-247,9
+247,9
@@
static int libcfs_ioctl_int(struct cfs_psdev_file *pfile,unsigned long cmd,
break;
case IOC_LIBCFS_LWT_SNAPSHOT: {
break;
case IOC_LIBCFS_LWT_SNAPSHOT: {
- cycles_t now;
- int ncpu;
- int total_size;
+ c
fs_c
ycles_t now;
+ int
ncpu;
+ int
total_size;
err = lwt_snapshot (&now, &ncpu, &total_size,
data->ioc_pbuf1, data->ioc_plen1);
err = lwt_snapshot (&now, &ncpu, &total_size,
data->ioc_pbuf1, data->ioc_plen1);
@@
-309,7
+309,7
@@
static int libcfs_ioctl_int(struct cfs_psdev_file *pfile,unsigned long cmd,
default: {
struct libcfs_ioctl_handler *hand;
err = -EINVAL;
default: {
struct libcfs_ioctl_handler *hand;
err = -EINVAL;
- down_read(&ioctl_list_sem);
+
cfs_
down_read(&ioctl_list_sem);
cfs_list_for_each_entry_typed(hand, &ioctl_list,
struct libcfs_ioctl_handler, item) {
err = hand->handle_ioctl(cmd, data);
cfs_list_for_each_entry_typed(hand, &ioctl_list,
struct libcfs_ioctl_handler, item) {
err = hand->handle_ioctl(cmd, data);
@@
-320,7
+320,7
@@
static int libcfs_ioctl_int(struct cfs_psdev_file *pfile,unsigned long cmd,
break;
}
}
break;
}
}
- up_read(&ioctl_list_sem);
+
cfs_
up_read(&ioctl_list_sem);
break;
}
}
break;
}
}
@@
-369,8
+369,8
@@
MODULE_DESCRIPTION("Portals v3.1");
MODULE_LICENSE("GPL");
extern cfs_psdev_t libcfs_dev;
MODULE_LICENSE("GPL");
extern cfs_psdev_t libcfs_dev;
-extern
struct rw_semaphore
tracefile_sem;
-extern
struct semaphore
trace_thread_sem;
+extern
cfs_rw_semaphore_t cfs_
tracefile_sem;
+extern
cfs_semaphore_t cfs_
trace_thread_sem;
extern void libcfs_init_nidstrings(void);
extern int libcfs_arch_init(void);
extern void libcfs_init_nidstrings(void);
extern int libcfs_arch_init(void);
@@
-382,14
+382,14
@@
static int init_libcfs_module(void)
libcfs_arch_init();
libcfs_init_nidstrings();
libcfs_arch_init();
libcfs_init_nidstrings();
-
init_rwsem(&
tracefile_sem);
-
init_mutex(&
trace_thread_sem);
- init_rwsem(&ioctl_list_sem);
+
cfs_init_rwsem(&cfs_
tracefile_sem);
+
cfs_init_mutex(&cfs_
trace_thread_sem);
+
cfs_
init_rwsem(&ioctl_list_sem);
CFS_INIT_LIST_HEAD(&ioctl_list);
rc = libcfs_debug_init(5 * 1024 * 1024);
if (rc < 0) {
CFS_INIT_LIST_HEAD(&ioctl_list);
rc = libcfs_debug_init(5 * 1024 * 1024);
if (rc < 0) {
- printk(KERN_ERR "LustreError: libcfs_debug_init: %d\n", rc);
+ printk(
CFS_
KERN_ERR "LustreError: libcfs_debug_init: %d\n", rc);
return (rc);
}
return (rc);
}
@@
-406,15
+406,23
@@
static int init_libcfs_module(void)
goto cleanup_lwt;
}
goto cleanup_lwt;
}
+ rc = cfs_wi_startup();
+ if (rc) {
+ CERROR("startup workitem: error %d\n", rc);
+ goto cleanup_deregister;
+ }
+
rc = insert_proc();
if (rc) {
CERROR("insert_proc: error %d\n", rc);
rc = insert_proc();
if (rc) {
CERROR("insert_proc: error %d\n", rc);
- goto cleanup_
deregister
;
+ goto cleanup_
wi
;
}
CDEBUG (D_OTHER, "portals setup OK\n");
return (0);
}
CDEBUG (D_OTHER, "portals setup OK\n");
return (0);
+ cleanup_wi:
+ cfs_wi_shutdown();
cleanup_deregister:
cfs_psdev_deregister(&libcfs_dev);
cleanup_lwt:
cleanup_deregister:
cfs_psdev_deregister(&libcfs_dev);
cleanup_lwt:
@@
-433,8
+441,9
@@
static void exit_libcfs_module(void)
remove_proc();
CDEBUG(D_MALLOC, "before Portals cleanup: kmem %d\n",
remove_proc();
CDEBUG(D_MALLOC, "before Portals cleanup: kmem %d\n",
- atomic_read(&libcfs_kmemory));
+
cfs_
atomic_read(&libcfs_kmemory));
+ cfs_wi_shutdown();
rc = cfs_psdev_deregister(&libcfs_dev);
if (rc)
CERROR("misc_deregister error %d\n", rc);
rc = cfs_psdev_deregister(&libcfs_dev);
if (rc)
CERROR("misc_deregister error %d\n", rc);
@@
-443,16
+452,17
@@
static void exit_libcfs_module(void)
lwt_fini();
#endif
lwt_fini();
#endif
- if (atomic_read(&libcfs_kmemory) != 0)
+ if (
cfs_
atomic_read(&libcfs_kmemory) != 0)
CERROR("Portals memory leaked: %d bytes\n",
CERROR("Portals memory leaked: %d bytes\n",
- atomic_read(&libcfs_kmemory));
+
cfs_
atomic_read(&libcfs_kmemory));
rc = libcfs_debug_cleanup();
if (rc)
rc = libcfs_debug_cleanup();
if (rc)
- printk(KERN_ERR "LustreError: libcfs_debug_cleanup: %d\n", rc);
+ printk(CFS_KERN_ERR "LustreError: libcfs_debug_cleanup: %d\n",
+ rc);
- fini_rwsem(&ioctl_list_sem);
-
fini_rwsem(&
tracefile_sem);
+
cfs_
fini_rwsem(&ioctl_list_sem);
+
cfs_fini_rwsem(&cfs_
tracefile_sem);
libcfs_arch_cleanup();
}
libcfs_arch_cleanup();
}