X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fobdclass%2Fclass_obd.c;h=cb0ea79f48c002ffbe574b935f5c5f5c279f1500;hb=586e95a5b3f7b9525d78e7efc9f2949387fc9d54;hp=6e4a56b6fff6d421868e82bcf831fd2e2d817d14;hpb=1b2547843817b4b7adbeb87ea9b070d9cac35c90;p=fs%2Flustre-release.git diff --git a/lustre/obdclass/class_obd.c b/lustre/obdclass/class_obd.c index 6e4a56b..cb0ea79 100644 --- a/lustre/obdclass/class_obd.c +++ b/lustre/obdclass/class_obd.c @@ -84,6 +84,8 @@ unsigned int obd_dump_on_eviction; EXPORT_SYMBOL(obd_dump_on_eviction); unsigned int obd_max_dirty_pages = 256; EXPORT_SYMBOL(obd_max_dirty_pages); +cfs_atomic_t obd_unstable_pages; +EXPORT_SYMBOL(obd_unstable_pages); cfs_atomic_t obd_dirty_pages; EXPORT_SYMBOL(obd_dirty_pages); unsigned int obd_timeout = OBD_TIMEOUT_DEFAULT; /* seconds */ @@ -112,6 +114,11 @@ 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. * @@ -138,7 +145,7 @@ int lustre_get_jobid(char *jobid) /* 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(), current_fsuid()); RETURN(0); } @@ -448,9 +455,9 @@ int class_handle_ioctl(unsigned int cmd, unsigned long arg) } /* 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 @@ -575,11 +582,11 @@ int init_obdclass(void) CFS_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++) @@ -588,10 +595,10 @@ int init_obdclass(void) /* 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 (num_physpages <= 512 << (20 - PAGE_CACHE_SHIFT)) - obd_max_dirty_pages = num_physpages / 4; + if (totalram_pages <= 512 << (20 - PAGE_CACHE_SHIFT)) + obd_max_dirty_pages = totalram_pages / 4; else - obd_max_dirty_pages = num_physpages / 2; + obd_max_dirty_pages = totalram_pages / 2; err = obd_init_caches(); if (err) @@ -602,9 +609,13 @@ int init_obdclass(void) 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) @@ -686,23 +697,24 @@ static void cleanup_obdclass(void) 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); + 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); + } + } llog_info_fini(); #ifdef HAVE_SERVER_SUPPORT 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();