Showing error 1555

User: Jiri Slaby
Error type: Leaving function in locked state
Error type description: Some lock is not unlocked on all paths of a function, so it is leaked
File location: net/x25/x25_proc.c
Line in file: 49
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-05-21 20:30:05 UTC


Source:

 19
 20#include <linux/init.h>
 21#include <linux/proc_fs.h>
 22#include <linux/seq_file.h>
 23#include <net/net_namespace.h>
 24#include <net/sock.h>
 25#include <net/x25.h>
 26
 27#ifdef CONFIG_PROC_FS
 28static __inline__ struct x25_route *x25_get_route_idx(loff_t pos)
 29{
 30        struct list_head *route_entry;
 31        struct x25_route *rt = NULL;
 32
 33        list_for_each(route_entry, &x25_route_list) {
 34                rt = list_entry(route_entry, struct x25_route, node);
 35                if (!pos--)
 36                        goto found;
 37        }
 38        rt = NULL;
 39found:
 40        return rt;
 41}
 42
 43static void *x25_seq_route_start(struct seq_file *seq, loff_t *pos)
 44        __acquires(x25_route_list_lock)
 45{
 46        loff_t l = *pos;
 47
 48        read_lock_bh(&x25_route_list_lock);
 49        return l ? x25_get_route_idx(--l) : SEQ_START_TOKEN;
 50}
 51
 52static void *x25_seq_route_next(struct seq_file *seq, void *v, loff_t *pos)
 53{
 54        struct x25_route *rt;
 55
 56        ++*pos;
 57        if (v == SEQ_START_TOKEN) {
 58                rt = NULL;
 59                if (!list_empty(&x25_route_list))
Show full sources