return n;
}
-int lprocfs_add_simple(struct proc_dir_entry *root, char *name,
- read_proc_t *read_proc, write_proc_t *write_proc,
- void *data)
-{
- struct proc_dir_entry *proc;
+cfs_proc_dir_entry_t *lprocfs_add_simple(struct proc_dir_entry *root,
+ char *name,
+ read_proc_t *read_proc,
+ write_proc_t *write_proc,
+ void *data,
+ struct file_operations *fops)
+{
+ cfs_proc_dir_entry_t *proc;
mode_t mode = 0;
if (root == NULL || name == NULL)
- return -EINVAL;
+ return ERR_PTR(-EINVAL);
if (read_proc)
mode = 0444;
if (write_proc)
mode |= 0200;
+ if (fops)
+ mode = 0644;
proc = create_proc_entry(name, mode, root);
if (!proc) {
CERROR("LprocFS: No memory to create /proc entry %s", name);
- return -ENOMEM;
+ return ERR_PTR(-ENOMEM);
}
proc->read_proc = read_proc;
proc->write_proc = write_proc;
proc->data = data;
- return 0;
+ proc->proc_fops = fops;
+ return proc;
}
return rc;
}
+/* see OBD_CONNECT_* */
static const char *obd_connect_names[] = {
"read_only",
"lov_index",
"alt_checksum_algorithm",
"fid_is_enabled",
"version_recovery",
+ "pools",
NULL
};
LPROCFS_OBD_OP_INIT(num_private_stats,stats,unregister_page_removal_cb);
LPROCFS_OBD_OP_INIT(num_private_stats, stats, register_lock_cancel_cb);
LPROCFS_OBD_OP_INIT(num_private_stats, stats,unregister_lock_cancel_cb);
+ LPROCFS_OBD_OP_INIT(num_private_stats, stats, pool_new);
+ LPROCFS_OBD_OP_INIT(num_private_stats, stats, pool_rem);
+ LPROCFS_OBD_OP_INIT(num_private_stats, stats, pool_add);
+ LPROCFS_OBD_OP_INIT(num_private_stats, stats, pool_del);
}
void lprocfs_init_ldlm_stats(struct lprocfs_stats *ldlm_stats)
struct nid_stat *tmp, *tmp1;
struct nid_stat_uuid *cursor, *tmp_ns_uuid;
struct obd_device *obd;
+ cfs_proc_dir_entry_t *entry;
ENTRY;
*newnid = 0;
list_add(&tmp_ns_uuid->ns_uuid_list, &tmp->nid_uuid_list);
spin_unlock(&obd->obd_nid_lock);
- rc = lprocfs_add_simple(tmp->nid_proc, "uuid",
- lprocfs_exp_rd_uuid, NULL, tmp);
- if (rc)
+ entry = lprocfs_add_simple(tmp->nid_proc, "uuid",
+ lprocfs_exp_rd_uuid, NULL, tmp, NULL);
+ if (IS_ERR(entry)) {
CWARN("Error adding the uuid file\n");
+ rc = PTR_ERR(entry);
+ }
exp->exp_nid_stats = tmp;
*newnid = 1;