diff options
Diffstat (limited to 'drivers/staging/lustre/lustre/fld/lproc_fld.c')
-rw-r--r-- | drivers/staging/lustre/lustre/fld/lproc_fld.c | 217 |
1 files changed, 5 insertions, 212 deletions
diff --git a/drivers/staging/lustre/lustre/fld/lproc_fld.c b/drivers/staging/lustre/lustre/fld/lproc_fld.c index c1bd80339e67..052f7d51a07c 100644 --- a/drivers/staging/lustre/lustre/fld/lproc_fld.c +++ b/drivers/staging/lustre/lustre/fld/lproc_fld.c @@ -62,7 +62,6 @@ fld_proc_targets_seq_show(struct seq_file *m, void *unused) { struct lu_client_fld *fld = (struct lu_client_fld *)m->private; struct lu_fld_target *target; - ENTRY; LASSERT(fld != NULL); @@ -72,14 +71,13 @@ fld_proc_targets_seq_show(struct seq_file *m, void *unused) seq_printf(m, "%s\n", fld_target_name(target)); spin_unlock(&fld->lcf_lock); - RETURN(0); + return 0; } static int fld_proc_hash_seq_show(struct seq_file *m, void *unused) { struct lu_client_fld *fld = (struct lu_client_fld *)m->private; - ENTRY; LASSERT(fld != NULL); @@ -87,7 +85,7 @@ fld_proc_hash_seq_show(struct seq_file *m, void *unused) seq_printf(m, "%s\n", fld->lcf_hash->fh_name); spin_unlock(&fld->lcf_lock); - RETURN(0); + return 0; } static ssize_t @@ -97,7 +95,6 @@ fld_proc_hash_seq_write(struct file *file, const char *buffer, struct lu_client_fld *fld = ((struct seq_file *)file->private_data)->private; struct lu_fld_hash *hash = NULL; int i; - ENTRY; LASSERT(fld != NULL); @@ -120,7 +117,7 @@ fld_proc_hash_seq_write(struct file *file, const char *buffer, fld->lcf_name, hash->fh_name); } - RETURN(count); + return count; } static ssize_t @@ -128,7 +125,6 @@ fld_proc_cache_flush_write(struct file *file, const char __user *buffer, size_t count, loff_t *pos) { struct lu_client_fld *fld = file->private_data; - ENTRY; LASSERT(fld != NULL); @@ -136,7 +132,7 @@ fld_proc_cache_flush_write(struct file *file, const char __user *buffer, CDEBUG(D_INFO, "%s: Lookup cache is flushed\n", fld->lcf_name); - RETURN(count); + return count; } static int fld_proc_cache_flush_open(struct inode *inode, struct file *file) @@ -158,202 +154,6 @@ struct file_operations fld_proc_cache_flush_fops = { .release = fld_proc_cache_flush_release, }; -struct fld_seq_param { - struct lu_env fsp_env; - struct dt_it *fsp_it; - struct lu_server_fld *fsp_fld; - unsigned int fsp_stop:1; -}; - -static void *fldb_seq_start(struct seq_file *p, loff_t *pos) -{ - struct fld_seq_param *param = p->private; - struct lu_server_fld *fld; - struct dt_object *obj; - const struct dt_it_ops *iops; - - if (param == NULL || param->fsp_stop) - return NULL; - - fld = param->fsp_fld; - obj = fld->lsf_obj; - LASSERT(obj != NULL); - iops = &obj->do_index_ops->dio_it; - - iops->load(¶m->fsp_env, param->fsp_it, *pos); - - *pos = be64_to_cpu(*(__u64 *)iops->key(¶m->fsp_env, param->fsp_it)); - return param; -} - -static void fldb_seq_stop(struct seq_file *p, void *v) -{ - struct fld_seq_param *param = p->private; - const struct dt_it_ops *iops; - struct lu_server_fld *fld; - struct dt_object *obj; - - if (param == NULL) - return; - - fld = param->fsp_fld; - obj = fld->lsf_obj; - LASSERT(obj != NULL); - iops = &obj->do_index_ops->dio_it; - - iops->put(¶m->fsp_env, param->fsp_it); -} - -static void *fldb_seq_next(struct seq_file *p, void *v, loff_t *pos) -{ - struct fld_seq_param *param = p->private; - struct lu_server_fld *fld; - struct dt_object *obj; - const struct dt_it_ops *iops; - int rc; - - if (param == NULL || param->fsp_stop) - return NULL; - - fld = param->fsp_fld; - obj = fld->lsf_obj; - LASSERT(obj != NULL); - iops = &obj->do_index_ops->dio_it; - - rc = iops->next(¶m->fsp_env, param->fsp_it); - if (rc > 0) { - param->fsp_stop = 1; - return NULL; - } - - *pos = be64_to_cpu(*(__u64 *)iops->key(¶m->fsp_env, param->fsp_it)); - return param; -} - -static int fldb_seq_show(struct seq_file *p, void *v) -{ - struct fld_seq_param *param = p->private; - struct lu_server_fld *fld; - struct dt_object *obj; - const struct dt_it_ops *iops; - struct fld_thread_info *info; - struct lu_seq_range *fld_rec; - int rc; - - if (param == NULL || param->fsp_stop) - return 0; - - fld = param->fsp_fld; - obj = fld->lsf_obj; - LASSERT(obj != NULL); - iops = &obj->do_index_ops->dio_it; - - info = lu_context_key_get(¶m->fsp_env.le_ctx, - &fld_thread_key); - fld_rec = &info->fti_rec; - rc = iops->rec(¶m->fsp_env, param->fsp_it, - (struct dt_rec *)fld_rec, 0); - if (rc != 0) { - CERROR("%s:read record error: rc %d\n", - fld->lsf_name, rc); - } else if (fld_rec->lsr_start != 0) { - range_be_to_cpu(fld_rec, fld_rec); - rc = seq_printf(p, DRANGE"\n", PRANGE(fld_rec)); - } - - return rc; -} - -struct seq_operations fldb_sops = { - .start = fldb_seq_start, - .stop = fldb_seq_stop, - .next = fldb_seq_next, - .show = fldb_seq_show, -}; - -static int fldb_seq_open(struct inode *inode, struct file *file) -{ - struct seq_file *seq; - struct lu_server_fld *fld = (struct lu_server_fld *)PDE_DATA(inode); - struct dt_object *obj; - const struct dt_it_ops *iops; - struct fld_seq_param *param = NULL; - int env_init = 0; - int rc; - - rc = seq_open(file, &fldb_sops); - if (rc) - GOTO(out, rc); - - obj = fld->lsf_obj; - if (obj == NULL) { - seq = file->private_data; - seq->private = NULL; - return 0; - } - - OBD_ALLOC_PTR(param); - if (param == NULL) - GOTO(out, rc = -ENOMEM); - - rc = lu_env_init(¶m->fsp_env, LCT_MD_THREAD); - if (rc != 0) - GOTO(out, rc); - - env_init = 1; - iops = &obj->do_index_ops->dio_it; - param->fsp_it = iops->init(¶m->fsp_env, obj, 0, NULL); - if (IS_ERR(param->fsp_it)) - GOTO(out, rc = PTR_ERR(param->fsp_it)); - - param->fsp_fld = fld; - param->fsp_stop = 0; - - seq = file->private_data; - seq->private = param; -out: - if (rc != 0) { - if (env_init == 1) - lu_env_fini(¶m->fsp_env); - if (param != NULL) - OBD_FREE_PTR(param); - } - return rc; -} - -static int fldb_seq_release(struct inode *inode, struct file *file) -{ - struct seq_file *seq = file->private_data; - struct fld_seq_param *param; - struct lu_server_fld *fld; - struct dt_object *obj; - const struct dt_it_ops *iops; - - param = seq->private; - if (param == NULL) { - lprocfs_seq_release(inode, file); - return 0; - } - - fld = param->fsp_fld; - obj = fld->lsf_obj; - LASSERT(obj != NULL); - iops = &obj->do_index_ops->dio_it; - - LASSERT(iops != NULL); - LASSERT(obj != NULL); - LASSERT(param->fsp_it != NULL); - iops->fini(¶m->fsp_env, param->fsp_it); - lu_env_fini(¶m->fsp_env); - OBD_FREE_PTR(param); - lprocfs_seq_release(inode, file); - - return 0; -} - -struct lprocfs_vars fld_server_proc_list[] = { - { NULL }}; - LPROC_SEQ_FOPS_RO(fld_proc_targets); LPROC_SEQ_FOPS(fld_proc_hash); @@ -363,11 +163,4 @@ struct lprocfs_vars fld_client_proc_list[] = { { "cache_flush", &fld_proc_cache_flush_fops }, { NULL }}; -struct file_operations fld_proc_seq_fops = { - .owner = THIS_MODULE, - .open = fldb_seq_open, - .read = seq_read, - .release = fldb_seq_release, -}; - -#endif +#endif /* LPROCFS */ |