X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fobdclass%2Flprocfs_status_server.c;h=c06964de8dbc26598b090f7426e85175acc32589;hb=8f27184b14a192848429e52ac234805c324e1f7a;hp=00298d46055639ad43a7bb066046e91c82b481a5;hpb=a172863af11bcef474191ca40eaa479179457c08;p=fs%2Flustre-release.git diff --git a/lustre/obdclass/lprocfs_status_server.c b/lustre/obdclass/lprocfs_status_server.c index 00298d4..c06964d 100644 --- a/lustre/obdclass/lprocfs_status_server.c +++ b/lustre/obdclass/lprocfs_status_server.c @@ -44,7 +44,7 @@ int lprocfs_evict_client_open(struct inode *inode, struct file *f) { - struct obd_device *obd = PDE_DATA(f->f_dentry->d_inode); + struct obd_device *obd = PDE_DATA(f->f_path.dentry->d_inode); atomic_inc(&obd->obd_evict_inprogress); return 0; @@ -52,7 +52,7 @@ int lprocfs_evict_client_open(struct inode *inode, struct file *f) int lprocfs_evict_client_release(struct inode *inode, struct file *f) { - struct obd_device *obd = PDE_DATA(f->f_dentry->d_inode); + struct obd_device *obd = PDE_DATA(f->f_path.dentry->d_inode); atomic_dec(&obd->obd_evict_inprogress); wake_up(&obd->obd_evict_inprogress_waitq); @@ -137,7 +137,7 @@ static void lprocfs_free_client_stats(struct nid_stat *client_stat) void lprocfs_free_per_client_stats(struct obd_device *obd) { - cfs_hash_t *hash = obd->obd_nid_stats_hash; + struct cfs_hash *hash = obd->obd_nid_stats_hash; struct nid_stat *stat; ENTRY; @@ -154,16 +154,9 @@ void lprocfs_free_per_client_stats(struct obd_device *obd) } EXPORT_SYMBOL(lprocfs_free_per_client_stats); -int lprocfs_exp_nid_seq_show(struct seq_file *m, void *data) -{ - struct obd_export *exp = m->private; - LASSERT(exp != NULL); - return seq_printf(m, "%s\n", obd_export_nid2str(exp)); -} - -static int lprocfs_exp_print_uuid_seq(cfs_hash_t *hs, cfs_hash_bd_t *bd, - struct hlist_node *hnode, void *cb_data) - +static int +lprocfs_exp_print_uuid_seq(struct cfs_hash *hs, struct cfs_hash_bd *bd, + struct hlist_node *hnode, void *cb_data) { struct seq_file *m = cb_data; struct obd_export *exp = cfs_hash_object(hs, hnode); @@ -173,8 +166,9 @@ static int lprocfs_exp_print_uuid_seq(cfs_hash_t *hs, cfs_hash_bd_t *bd, return 0; } -static int lprocfs_exp_print_nodemap_seq(cfs_hash_t *hs, cfs_hash_bd_t *bd, - struct hlist_node *hnode, void *cb_data) +static int +lprocfs_exp_print_nodemap_seq(struct cfs_hash *hs, struct cfs_hash_bd *bd, + struct hlist_node *hnode, void *cb_data) { struct seq_file *m = cb_data; struct obd_export *exp = cfs_hash_object(hs, hnode); @@ -185,7 +179,8 @@ static int lprocfs_exp_print_nodemap_seq(cfs_hash_t *hs, cfs_hash_bd_t *bd, return 0; } -static int lprocfs_exp_nodemap_seq_show(struct seq_file *m, void *data) +static int +lprocfs_exp_nodemap_seq_show(struct seq_file *m, void *data) { struct nid_stat *stats = m->private; struct obd_device *obd = stats->nid_obd; @@ -207,8 +202,9 @@ static int lprocfs_exp_uuid_seq_show(struct seq_file *m, void *data) } LPROC_SEQ_FOPS_RO(lprocfs_exp_uuid); -static int lprocfs_exp_print_hash_seq(cfs_hash_t *hs, cfs_hash_bd_t *bd, - struct hlist_node *hnode, void *cb_data) +static int +lprocfs_exp_print_hash_seq(struct cfs_hash *hs, struct cfs_hash_bd *bd, + struct hlist_node *hnode, void *cb_data) { struct seq_file *m = cb_data; @@ -287,7 +283,7 @@ int lprocfs_exp_setup(struct obd_export *exp, lnet_nid_t *nid) struct nid_stat *new_stat, *old_stat; struct obd_device *obd = NULL; struct proc_dir_entry *entry; - char *buffer = NULL; + char nidstr[LNET_NIDSTR_SIZE]; int rc = 0; ENTRY; @@ -301,6 +297,8 @@ int lprocfs_exp_setup(struct obd_export *exp, lnet_nid_t *nid) if (nid == NULL || *nid == LNET_NID_ANY) RETURN(-EALREADY); + libcfs_nid2str_r(*nid, nidstr, sizeof(nidstr)); + spin_lock(&exp->exp_lock); if (exp->exp_nid_stats != NULL) { spin_unlock(&exp->exp_lock); @@ -324,8 +322,7 @@ int lprocfs_exp_setup(struct obd_export *exp, lnet_nid_t *nid) old_stat = cfs_hash_findadd_unique(obd->obd_nid_stats_hash, nid, &new_stat->nid_hash); CDEBUG(D_INFO, "Found stats %p for nid %s - ref %d\n", - old_stat, libcfs_nid2str(*nid), - atomic_read(&new_stat->nid_exp_ref_count)); + old_stat, nidstr, atomic_read(&old_stat->nid_exp_ref_count)); /* Return -EALREADY here so that we know that the /proc * entry already has been created */ @@ -340,21 +337,15 @@ int lprocfs_exp_setup(struct obd_export *exp, lnet_nid_t *nid) GOTO(destroy_new, rc = -EALREADY); } /* not found - create */ - OBD_ALLOC(buffer, LNET_NIDSTR_SIZE); - if (buffer == NULL) - GOTO(destroy_new, rc = -ENOMEM); - - memcpy(buffer, libcfs_nid2str(*nid), LNET_NIDSTR_SIZE); - new_stat->nid_proc = lprocfs_register(buffer, + new_stat->nid_proc = lprocfs_register(nidstr, obd->obd_proc_exports_entry, NULL, NULL); - OBD_FREE(buffer, LNET_NIDSTR_SIZE); if (IS_ERR(new_stat->nid_proc)) { rc = PTR_ERR(new_stat->nid_proc); new_stat->nid_proc = NULL; CERROR("%s: cannot create proc entry for export %s: rc = %d\n", - obd->obd_name, libcfs_nid2str(*nid), rc); + obd->obd_name, nidstr, rc); GOTO(destroy_new_ns, rc); } @@ -417,7 +408,6 @@ int lprocfs_exp_cleanup(struct obd_export *exp) return 0; } -EXPORT_SYMBOL(lprocfs_exp_cleanup); #define LPROCFS_OBD_OP_INIT(base, stats, op) \ do { \ @@ -446,25 +436,18 @@ void lprocfs_init_ops_stats(int num_private_stats, struct lprocfs_stats *stats) LPROCFS_OBD_OP_INIT(num_private_stats, stats, fid_alloc); LPROCFS_OBD_OP_INIT(num_private_stats, stats, statfs); LPROCFS_OBD_OP_INIT(num_private_stats, stats, statfs_async); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, packmd); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, unpackmd); LPROCFS_OBD_OP_INIT(num_private_stats, stats, create); LPROCFS_OBD_OP_INIT(num_private_stats, stats, destroy); LPROCFS_OBD_OP_INIT(num_private_stats, stats, setattr); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, setattr_async); LPROCFS_OBD_OP_INIT(num_private_stats, stats, getattr); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, getattr_async); LPROCFS_OBD_OP_INIT(num_private_stats, stats, preprw); LPROCFS_OBD_OP_INIT(num_private_stats, stats, commitrw); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, change_cbdata); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, find_cbdata); LPROCFS_OBD_OP_INIT(num_private_stats, stats, init_export); LPROCFS_OBD_OP_INIT(num_private_stats, stats, destroy_export); LPROCFS_OBD_OP_INIT(num_private_stats, stats, import_event); LPROCFS_OBD_OP_INIT(num_private_stats, stats, notify); LPROCFS_OBD_OP_INIT(num_private_stats, stats, health_check); LPROCFS_OBD_OP_INIT(num_private_stats, stats, get_uuid); - LPROCFS_OBD_OP_INIT(num_private_stats, stats, quotacheck); LPROCFS_OBD_OP_INIT(num_private_stats, stats, quotactl); LPROCFS_OBD_OP_INIT(num_private_stats, stats, ping); LPROCFS_OBD_OP_INIT(num_private_stats, stats, pool_new);