Showing error 1544

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


Source:

1216
1217static const struct seq_operations rose_neigh_seqops = {
1218        .start = rose_neigh_start,
1219        .next = rose_neigh_next,
1220        .stop = rose_neigh_stop,
1221        .show = rose_neigh_show,
1222};
1223
1224static int rose_neigh_open(struct inode *inode, struct file *file)
1225{
1226        return seq_open(file, &rose_neigh_seqops);
1227}
1228
1229const struct file_operations rose_neigh_fops = {
1230        .owner = THIS_MODULE,
1231        .open = rose_neigh_open,
1232        .read = seq_read,
1233        .llseek = seq_lseek,
1234        .release = seq_release,
1235};
1236
1237
1238static void *rose_route_start(struct seq_file *seq, loff_t *pos)
1239        __acquires(rose_route_list_lock)
1240{
1241        struct rose_route *rose_route;
1242        int i = 1;
1243
1244        spin_lock_bh(&rose_route_list_lock);
1245        if (*pos == 0)
1246                return SEQ_START_TOKEN;
1247
1248        for (rose_route = rose_route_list; rose_route && i < *pos;
1249             rose_route = rose_route->next, ++i);
1250
1251        return (i == *pos) ? rose_route : NULL;
1252}
1253
1254static void *rose_route_next(struct seq_file *seq, void *v, loff_t *pos)
1255{
1256        ++*pos;
Show full sources