static void *pool_proc_next(struct seq_file *s, void *v, loff_t *pos)
{
- struct pool_iterator *iter = (struct pool_iterator *)s->private;
- int prev_idx;
+ struct pool_iterator *iter = (struct pool_iterator *)s->private;
+ int prev_idx;
LASSERTF(iter->magic == POOL_IT_MAGIC, "%08X\n", iter->magic);
- /* test if end of file */
- if (*pos >= pool_tgt_count(iter->pool))
- return NULL;
+ (*pos)++;
+ /* test if end of file */
+ if (*pos > pool_tgt_count(iter->pool))
+ return NULL;
- /* iterate to find a non empty entry */
- prev_idx = iter->idx;
- iter->idx++;
+ /* iterate to find a non empty entry */
+ prev_idx = iter->idx;
+ iter->idx++;
if (iter->idx >= pool_tgt_count(iter->pool)) {
- iter->idx = prev_idx; /* we stay on the last entry */
- return NULL;
- }
- (*pos)++;
- /* return != NULL to continue */
- return iter;
+ iter->idx = prev_idx; /* we stay on the last entry */
+ return NULL;
+ }
+ /* return != NULL to continue */
+ return iter;
}
static void *pool_proc_start(struct seq_file *s, loff_t *pos)
return 0;
}
-static struct seq_operations pool_proc_ops = {
- .start = pool_proc_start,
- .next = pool_proc_next,
- .stop = pool_proc_stop,
- .show = pool_proc_show,
+static const struct seq_operations pool_proc_ops = {
+ .start = pool_proc_start,
+ .next = pool_proc_next,
+ .stop = pool_proc_stop,
+ .show = pool_proc_show,
};
static int pool_proc_open(struct inode *inode, struct file *file)
return rc;
}
-static struct file_operations pool_proc_operations = {
- .open = pool_proc_open,
- .read = seq_read,
- .llseek = seq_lseek,
- .release = seq_release,
+const static struct file_operations pool_proc_operations = {
+ .open = pool_proc_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = seq_release,
};
#endif /* CONFIG_PROC_FS */