Showing error 1073

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: fs/ocfs2/dlm/dlmdomain.c
Line in file: 1748
Project: Linux Kernel
Project version: 2.6.28
Tools: Undetermined 1
Stanse (1.2)
Entered: 2012-03-04 17:07:06 UTC


Source:

1718
1719        /* add the new domain */
1720        list_add_tail(&dlm->list, &dlm_domains);
1721        spin_unlock(&dlm_domain_lock);
1722
1723        /*
1724         * Pass the locking protocol version into the join.  If the join
1725         * succeeds, it will have the negotiated protocol set.
1726         */
1727        dlm->dlm_locking_proto = dlm_protocol;
1728        dlm->fs_locking_proto = *fs_proto;
1729
1730        ret = dlm_join_domain(dlm);
1731        if (ret) {
1732                mlog_errno(ret);
1733                dlm_put(dlm);
1734                goto leave;
1735        }
1736
1737        /* Tell the caller what locking protocol we negotiated */
1738        *fs_proto = dlm->fs_locking_proto;
1739
1740        ret = 0;
1741leave:
1742        if (new_ctxt)
1743                dlm_free_ctxt_mem(new_ctxt);
1744
1745        if (ret < 0)
1746                dlm = ERR_PTR(ret);
1747
1748        return dlm;
1749}
1750EXPORT_SYMBOL_GPL(dlm_register_domain);
1751
1752static LIST_HEAD(dlm_join_handlers);
1753
1754static void dlm_unregister_net_handlers(void)
1755{
1756        o2net_unregister_handler_list(&dlm_join_handlers);
1757}
1758
Show full sources