Showing error 1503

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/ipx/ipx_proc.c
Line in file: 126
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-05-21 20:30:05 UTC


Source:

 96        if (!list_empty(&ipx_routes))
 97                rc = list_entry(ipx_routes.next, struct ipx_route, node);
 98        return rc;
 99}
100
101static struct ipx_route *ipx_routes_next(struct ipx_route *r)
102{
103        struct ipx_route *rc = NULL;
104
105        if (r->node.next != &ipx_routes)
106                rc = list_entry(r->node.next, struct ipx_route, node);
107        return rc;
108}
109
110static __inline__ struct ipx_route *ipx_get_route_idx(loff_t pos)
111{
112        struct ipx_route *r;
113
114        list_for_each_entry(r, &ipx_routes, node)
115                if (!pos--)
116                        goto out;
117        r = NULL;
118out:
119        return r;
120}
121
122static void *ipx_seq_route_start(struct seq_file *seq, loff_t *pos)
123{
124        loff_t l = *pos;
125        read_lock_bh(&ipx_routes_lock);
126        return l ? ipx_get_route_idx(--l) : SEQ_START_TOKEN;
127}
128
129static void *ipx_seq_route_next(struct seq_file *seq, void *v, loff_t *pos)
130{
131        struct ipx_route *r;
132
133        ++*pos;
134        if (v == SEQ_START_TOKEN)
135                r = ipx_routes_head();
136        else
Show full sources