# include <dt_object.h>
# include <md_object.h>
#endif /* HAVE_SERVER_SUPPORT */
+#include <lustre_ioctl.h>
#include "llog_internal.h"
#ifndef __KERNEL__
/* liblustre workaround */
-cfs_atomic_t libcfs_kmemory = {0};
+atomic_t libcfs_kmemory = {0};
#endif
struct obd_device *obd_devs[MAX_OBD_DEVICES];
EXPORT_SYMBOL(obd_devs);
-cfs_list_t obd_types;
+struct list_head obd_types;
DEFINE_RWLOCK(obd_dev_lock);
__u64 obd_max_pages = 0;
EXPORT_SYMBOL(obd_dump_on_eviction);
unsigned int obd_max_dirty_pages = 256;
EXPORT_SYMBOL(obd_max_dirty_pages);
-cfs_atomic_t obd_dirty_pages;
+atomic_t obd_dirty_pages;
EXPORT_SYMBOL(obd_dirty_pages);
unsigned int obd_timeout = OBD_TIMEOUT_DEFAULT; /* seconds */
EXPORT_SYMBOL(obd_timeout);
int at_extra = 30;
EXPORT_SYMBOL(at_extra);
-cfs_atomic_t obd_dirty_transit_pages;
+atomic_t obd_dirty_transit_pages;
EXPORT_SYMBOL(obd_dirty_transit_pages);
char obd_jobid_var[JOBSTATS_JOBID_VAR_MAX_LEN + 1] = JOBSTATS_DISABLE;
EXPORT_SYMBOL(obd_jobid_var);
+#ifdef LPROCFS
+struct lprocfs_stats *obd_memory = NULL;
+EXPORT_SYMBOL(obd_memory);
+#endif
+
/* Get jobid of current process by reading the environment variable
* stored in between the "env_start" & "env_end" of task struct.
*
/* Use process name + fsuid as jobid */
if (strcmp(obd_jobid_var, JOBSTATS_PROCNAME_UID) == 0) {
snprintf(jobid, JOBSTATS_JOBID_SIZE, "%s.%u",
- cfs_curproc_comm(), cfs_curproc_fsuid());
+ current_comm(),
+ from_kuid(&init_user_ns, current_fsuid()));
RETURN(0);
}
"("LPU64" bytes) allocated by Lustre, "
"%d total bytes by LNET\n",
obd_memory_sum(),
- obd_pages_sum() << CFS_PAGE_SHIFT,
+ obd_pages_sum() << PAGE_CACHE_SHIFT,
obd_pages_sum(),
- cfs_atomic_read(&libcfs_kmemory));
+ atomic_read(&libcfs_kmemory));
return 1;
}
return 0;
}
EXPORT_SYMBOL(obd_alloc_fail);
-static inline void obd_data2conn(struct lustre_handle *conn,
- struct obd_ioctl_data *data)
-{
- memset(conn, 0, sizeof *conn);
- conn->cookie = data->ioc_cookie;
-}
-
-static inline void obd_conn2data(struct obd_ioctl_data *data,
- struct lustre_handle *conn)
-{
- data->ioc_cookie = conn->cookie;
-}
-
int class_resolve_dev_name(__u32 len, const char *name)
{
int rc;
OBD_ALLOC(lcfg, data->ioc_plen1);
if (lcfg == NULL)
GOTO(out, err = -ENOMEM);
- err = cfs_copy_from_user(lcfg, data->ioc_pbuf1,
+ err = copy_from_user(lcfg, data->ioc_pbuf1,
data->ioc_plen1);
if (!err)
err = lustre_cfg_sanity_check(lcfg, data->ioc_plen1);
GOTO(out, err);
}
- case OBD_IOC_CLOSE_UUID: {
- CDEBUG(D_IOCTL, "closing all connections to uuid %s (NOOP)\n",
- data->ioc_inlbuf1);
- GOTO(out, err = 0);
- }
-
case OBD_IOC_GETDEVICE: {
int index = data->ioc_count;
char *status, *str;
snprintf(str, len - sizeof(*data), "%3d %s %s %s %s %d",
(int)index, status, obd->obd_type->typ_name,
obd->obd_name, obd->obd_uuid.uuid,
- cfs_atomic_read(&obd->obd_refcount));
+ atomic_read(&obd->obd_refcount));
err = obd_ioctl_popdata((void *)arg, data, len);
GOTO(out, err = 0);
} /* class_handle_ioctl */
#ifdef __KERNEL__
-extern cfs_psdev_t obd_psdev;
+extern struct miscdevice obd_psdev;
#else
-void *obd_psdev = NULL;
+struct miscdevice obd_psdev;
#endif
#define OBD_INIT_CHECK
CWARN("LPD64 wrong length! strlen(%s)=%d != 2\n", buf, len);
ret = -EINVAL;
}
- if ((u64val & ~CFS_PAGE_MASK) >= CFS_PAGE_SIZE) {
+ if ((u64val & ~CFS_PAGE_MASK) >= PAGE_CACHE_SIZE) {
CWARN("mask failed: u64val "LPU64" >= "LPU64"\n", u64val,
- (__u64)CFS_PAGE_SIZE);
+ (__u64)PAGE_CACHE_SIZE);
ret = -EINVAL;
}
#define obd_init_checks() do {} while(0)
#endif
-extern spinlock_t obd_types_lock;
extern int class_procfs_init(void);
extern int class_procfs_clean(void);
int lustre_register_fs(void);
for (i = CAPA_SITE_CLIENT; i < CAPA_SITE_MAX; i++)
- CFS_INIT_LIST_HEAD(&capa_list[i]);
+ INIT_LIST_HEAD(&capa_list[i]);
#endif
LCONSOLE_INFO("Lustre: Build Version: "BUILD_VERSION"\n");
if (err)
return err;
- CFS_INIT_LIST_HEAD(&obd_types);
+ INIT_LIST_HEAD(&obd_types);
- err = cfs_psdev_register(&obd_psdev);
- if (err) {
- CERROR("cannot register %d err %d\n", OBD_DEV_MINOR, err);
- return err;
- }
+ err = misc_register(&obd_psdev);
+ if (err) {
+ CERROR("cannot register %d err %d\n", OBD_DEV_MINOR, err);
+ return err;
+ }
/* This struct is already zeroed for us (static global) */
for (i = 0; i < class_devno_max(); i++)
/* Default the dirty page cache cap to 1/2 of system memory.
* For clients with less memory, a larger fraction is needed
* for other purposes (mostly for BGL). */
- if (cfs_num_physpages <= 512 << (20 - CFS_PAGE_SHIFT))
- obd_max_dirty_pages = cfs_num_physpages / 4;
- else
- obd_max_dirty_pages = cfs_num_physpages / 2;
+ if (totalram_pages <= 512 << (20 - PAGE_CACHE_SHIFT))
+ obd_max_dirty_pages = totalram_pages / 4;
+ else
+ obd_max_dirty_pages = totalram_pages / 2;
err = obd_init_caches();
if (err)
return err;
#endif
- err = lu_global_init();
- if (err)
- return err;
+ err = lu_global_init();
+ if (err)
+ return err;
+
+ err = lu_capainfo_init();
+ if (err)
+ return err;
err = cl_global_init();
if (err != 0)
err = lu_ucred_global_init();
if (err != 0)
return err;
-
- err = llo_global_init();
- if (err != 0)
- return err;
#endif
err = llog_info_init();
#ifdef __KERNEL__
static void cleanup_obdclass(void)
{
- int i;
int lustre_unregister_fs(void);
__u64 memory_leaked, pages_leaked;
__u64 memory_max, pages_max;
lustre_unregister_fs();
- cfs_psdev_deregister(&obd_psdev);
- for (i = 0; i < class_devno_max(); i++) {
- struct obd_device *obd = class_num2obd(i);
- if (obd && obd->obd_set_up &&
- OBT(obd) && OBP(obd, detach)) {
- /* XXX should this call generic detach otherwise? */
- LASSERT(obd->obd_magic == OBD_DEVICE_MAGIC);
- OBP(obd, detach)(obd);
- }
- }
+ misc_deregister(&obd_psdev);
llog_info_fini();
#ifdef HAVE_SERVER_SUPPORT
- llo_global_fini();
lu_ucred_global_fini();
dt_global_fini();
#endif
cl_global_fini();
- lu_global_fini();
+ lu_capainfo_fini();
+ lu_global_fini();
obd_cleanup_caches();
obd_sysctl_clean();