2145 }
2146 if (IS_POSIX(fl)) {
2147 if (fl->fl_end == OFFSET_MAX)
2148 seq_printf(f, "%Ld EOF\n", fl->fl_start);
2149 else
2150 seq_printf(f, "%Ld %Ld\n", fl->fl_start, fl->fl_end);
2151 } else {
2152 seq_printf(f, "0 EOF\n");
2153 }
2154}
2155
2156static int locks_show(struct seq_file *f, void *v)
2157{
2158 struct file_lock *fl, *bfl;
2159
2160 fl = list_entry(v, struct file_lock, fl_link);
2161
2162 lock_get_status(f, fl, (long)f->private, "");
2163
2164 list_for_each_entry(bfl, &fl->fl_block, fl_block)
2165 lock_get_status(f, bfl, (long)f->private, " ->");
2166
2167 f->private++;
2168 return 0;
2169}
2170
2171static void *locks_start(struct seq_file *f, loff_t *pos)
2172{
2173 lock_kernel();
2174 f->private = (void *)1;
2175 return seq_list_start(&file_lock_list, *pos);
2176}
2177
2178static void *locks_next(struct seq_file *f, void *v, loff_t *pos)
2179{
2180 return seq_list_next(v, &file_lock_list, pos);
2181}
2182
2183static void locks_stop(struct seq_file *f, void *v)
2184{
2185 unlock_kernel();