Showing error 1535

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


Source:

1766        /* look in hash by protocol */
1767        for (idx = 0; idx < IP_VS_SVC_TAB_SIZE; idx++) {
1768                list_for_each_entry(svc, &ip_vs_svc_table[idx], s_list) {
1769                        if (pos-- == 0){
1770                                iter->table = ip_vs_svc_table;
1771                                iter->bucket = idx;
1772                                return svc;
1773                        }
1774                }
1775        }
1776
1777        /* keep looking in fwmark */
1778        for (idx = 0; idx < IP_VS_SVC_TAB_SIZE; idx++) {
1779                list_for_each_entry(svc, &ip_vs_svc_fwm_table[idx], f_list) {
1780                        if (pos-- == 0) {
1781                                iter->table = ip_vs_svc_fwm_table;
1782                                iter->bucket = idx;
1783                                return svc;
1784                        }
1785                }
1786        }
1787
1788        return NULL;
1789}
1790
1791static void *ip_vs_info_seq_start(struct seq_file *seq, loff_t *pos)
1792__acquires(__ip_vs_svc_lock)
1793{
1794
1795        read_lock_bh(&__ip_vs_svc_lock);
1796        return *pos ? ip_vs_info_array(seq, *pos - 1) : SEQ_START_TOKEN;
1797}
1798
1799
1800static void *ip_vs_info_seq_next(struct seq_file *seq, void *v, loff_t *pos)
1801{
1802        struct list_head *e;
1803        struct ip_vs_iter *iter;
1804        struct ip_vs_service *svc;
1805
1806        ++*pos;
Show full sources