668 if (ret < 0)
669 return ret;
670
671 m = file->private_data;
672 m->private = cell;
673 return 0;
674}
675
676
677
678
679static int afs_proc_cell_servers_release(struct inode *inode,
680 struct file *file)
681{
682 return seq_release(inode, file);
683}
684
685
686
687
688
689static void *afs_proc_cell_servers_start(struct seq_file *m, loff_t *_pos)
690 __acquires(m->private->servers_lock)
691{
692 struct afs_cell *cell = m->private;
693
694 _enter("cell=%p pos=%Ld", cell, *_pos);
695
696
697 read_lock(&cell->servers_lock);
698 return seq_list_start_head(&cell->servers, *_pos);
699}
700
701
702
703
704static void *afs_proc_cell_servers_next(struct seq_file *p, void *v,
705 loff_t *_pos)
706{
707 struct afs_cell *cell = p->private;
708