-#define LDLM_POOL_PROC_READER(var, type) \
- static int lprocfs_rd_##var(char *page, char **start, off_t off, \
- int count, int *eof, void *data) \
- { \
- struct ldlm_pool *pl = data; \
- type tmp; \
- \
- cfs_spin_lock(&pl->pl_lock); \
- tmp = pl->pl_##var; \
- cfs_spin_unlock(&pl->pl_lock); \
- \
- return lprocfs_rd_uint(page, start, off, count, eof, &tmp); \
- } \
- struct __##var##__dummy_read {;} /* semicolon catcher */
-
-#define LDLM_POOL_PROC_WRITER(var, type) \
- int lprocfs_wr_##var(struct file *file, const char *buffer, \
- unsigned long count, void *data) \
- { \
- struct ldlm_pool *pl = data; \
- type tmp; \
- int rc; \
- \
- rc = lprocfs_wr_uint(file, buffer, count, &tmp); \
- if (rc) { \
- CERROR("Can't parse user input, rc = %d\n", rc); \
- return rc; \
- } \
- \
- cfs_spin_lock(&pl->pl_lock); \
- pl->pl_##var = tmp; \
- cfs_spin_unlock(&pl->pl_lock); \
- \
- return rc; \
- } \
- struct __##var##__dummy_write {;} /* semicolon catcher */
+#define LDLM_POOL_PROC_READER_SEQ_SHOW(var, type) \
+ static int lprocfs_##var##_seq_show(struct seq_file *m, void *v)\
+ { \
+ struct ldlm_pool *pl = m->private; \
+ type tmp; \
+ \
+ spin_lock(&pl->pl_lock); \
+ tmp = pl->pl_##var; \
+ spin_unlock(&pl->pl_lock); \
+ \
+ return lprocfs_uint_seq_show(m, &tmp); \
+ } \
+ struct __##var##__dummy_read {;} /* semicolon catcher */
+
+#define LDLM_POOL_PROC_WRITER(var, type) \
+ static int lprocfs_wr_##var(struct file *file, \
+ const char __user *buffer, \
+ unsigned long count, void *data) \
+ { \
+ struct ldlm_pool *pl = data; \
+ type tmp; \
+ int rc; \
+ \
+ rc = lprocfs_wr_uint(file, buffer, count, &tmp); \
+ if (rc < 0) { \
+ CERROR("Can't parse user input, rc = %d\n", rc);\
+ return rc; \
+ } \
+ \
+ spin_lock(&pl->pl_lock); \
+ pl->pl_##var = tmp; \
+ spin_unlock(&pl->pl_lock); \
+ \
+ return rc; \
+ } \
+ struct __##var##__dummy_write {;} /* semicolon catcher */
+
+static inline void
+ldlm_add_var(struct lprocfs_vars *vars, struct proc_dir_entry *proc_dir,
+ const char *name, void *data, const struct file_operations *ops)
+{
+ snprintf((char *)vars->name, MAX_STRING_SIZE, "%s", name);
+ vars->data = data;
+ vars->fops = ops;
+ lprocfs_add_vars(proc_dir, vars, NULL);
+}