Showing error 994

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: mm/swapfile.c
Line in file: 1752
Project: Linux Kernel
Project version: 2.6.28
Tools: Stanse (1.2)
Entered: 2012-03-02 21:35:18 UTC


Source:

1722        spin_unlock(&swap_lock);
1723        mutex_unlock(&swapon_mutex);
1724        error = 0;
1725        goto out;
1726bad_swap:
1727        if (bdev) {
1728                set_blocksize(bdev, p->old_block_size);
1729                bd_release(bdev);
1730        }
1731        destroy_swap_extents(p);
1732bad_swap_2:
1733        spin_lock(&swap_lock);
1734        p->swap_file = NULL;
1735        p->flags = 0;
1736        spin_unlock(&swap_lock);
1737        vfree(swap_map);
1738        if (swap_file)
1739                filp_close(swap_file, NULL);
1740out:
1741        if (page && !IS_ERR(page)) {
1742                kunmap(page);
1743                page_cache_release(page);
1744        }
1745        if (name)
1746                putname(name);
1747        if (did_down) {
1748                if (!error)
1749                        inode->i_flags |= S_SWAPFILE;
1750                mutex_unlock(&inode->i_mutex);
1751        }
1752        return error;
1753}
1754
1755void si_swapinfo(struct sysinfo *val)
1756{
1757        unsigned int i;
1758        unsigned long nr_to_be_unused = 0;
1759
1760        spin_lock(&swap_lock);
1761        for (i = 0; i < nr_swapfiles; i++) {
1762                if (!(swap_info[i].flags & SWP_USED) ||
Show full sources