]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ocfs2/cluster: Fix o2net_fill_node_map()
authorSunil Mushran <sunil.mushran@oracle.com>
Wed, 23 Nov 2011 18:50:23 +0000 (10:50 -0800)
committerMaxim Uvarov <maxim.uvarov@oracle.com>
Fri, 23 Mar 2012 01:42:16 +0000 (18:42 -0700)
Fix an oops having the following stack trace....
o2net_fill_node_map() => o2net_tx_can_proceed() => sc_put() => kref_put() => sc_kref_release()

Signed-off-by: Sunil Mushran <sunil.mushran@oracle.com>
fs/ocfs2/cluster/tcp.c

index 3f55d832047a1848621bb4891e27a9f1f8e3a845..c371ff1d4aeee6b5971d7440832dbcbfd789e773 100644 (file)
@@ -1038,14 +1038,14 @@ static int o2net_tx_can_proceed(struct o2net_node *nn,
 void o2net_fill_node_map(unsigned long *map, unsigned bytes)
 {
        struct o2net_sock_container *sc;
-       int node, ret;
+       int node, err, ret;
 
        BUG_ON(bytes < (BITS_TO_LONGS(O2NM_MAX_NODES) * sizeof(unsigned long)));
 
        memset(map, 0, bytes);
        for (node = 0; node < O2NM_MAX_NODES; ++node) {
-               o2net_tx_can_proceed(o2net_nn_from_num(node), &sc, &ret);
-               if (!ret) {
+               ret = o2net_tx_can_proceed(o2net_nn_from_num(node), &sc, &err);
+               if (ret && !err) {
                        set_bit(node, map);
                        sc_put(sc);
                }