* 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.
*/
/*
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;
- 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
- 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;
}
{
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
- list_del_init(&hand->item);
- up_write(&ioctl_list_sem);
+ cfs_list_del_init(&hand->item);
+ cfs_up_write(&ioctl_list_sem);
return rc;
}
break;
case IOC_LIBCFS_LWT_SNAPSHOT: {
- cycles_t now;
- int ncpu;
- int total_size;
+ cfs_cycles_t now;
+ int ncpu;
+ int total_size;
err = lwt_snapshot (&now, &ncpu, &total_size,
data->ioc_pbuf1, data->ioc_plen1);
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);
break;
}
}
- up_read(&ioctl_list_sem);
+ cfs_up_read(&ioctl_list_sem);
break;
}
}
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);
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) {
- printk(KERN_ERR "LustreError: libcfs_debug_init: %d\n", rc);
+ printk(CFS_KERN_ERR "LustreError: libcfs_debug_init: %d\n", rc);
return (rc);
}
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);
- goto cleanup_deregister;
+ goto cleanup_wi;
}
CDEBUG (D_OTHER, "portals setup OK\n");
return (0);
+ cleanup_wi:
+ cfs_wi_shutdown();
cleanup_deregister:
cfs_psdev_deregister(&libcfs_dev);
cleanup_lwt:
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);
lwt_fini();
#endif
- if (atomic_read(&libcfs_kmemory) != 0)
+ if (cfs_atomic_read(&libcfs_kmemory) != 0)
CERROR("Portals memory leaked: %d bytes\n",
- atomic_read(&libcfs_kmemory));
+ cfs_atomic_read(&libcfs_kmemory));
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();
}