Showing error 1874

User: Jiri Slaby
Error type: Invalid Pointer Dereference
Error type description: A pointer which is invalid is being dereferenced
File location: fs/ocfs2/cluster/tcp.c
Line in file: 489
Project: Linux Kernel
Project version: 2.6.28
Tools: Smatch (1.59)
Entered: 2013-09-11 08:47:26 UTC


Source:

 459
 460        /* the node num comparison and single connect/accept path should stop
 461         * an non-null sc from being overwritten with another */
 462        BUG_ON(sc && nn->nn_sc && nn->nn_sc != sc);
 463        mlog_bug_on_msg(err && valid, "err %d valid %u\n", err, valid);
 464        mlog_bug_on_msg(valid && !sc, "valid %u sc %p\n", valid, sc);
 465
 466        if (was_valid && !valid && err == 0)
 467                err = -ENOTCONN;
 468
 469        mlog(ML_CONN, "node %u sc: %p -> %p, valid %u -> %u, err %d -> %d\n",
 470             o2net_num_from_nn(nn), nn->nn_sc, sc, nn->nn_sc_valid, valid,
 471             nn->nn_persistent_error, err);
 472
 473        nn->nn_sc = sc;
 474        nn->nn_sc_valid = valid ? 1 : 0;
 475        nn->nn_persistent_error = err;
 476
 477        /* mirrors o2net_tx_can_proceed() */
 478        if (nn->nn_persistent_error || nn->nn_sc_valid)
 479                wake_up(&nn->nn_sc_wq);
 480
 481        if (!was_err && nn->nn_persistent_error) {
 482                o2quo_conn_err(o2net_num_from_nn(nn));
 483                queue_delayed_work(o2net_wq, &nn->nn_still_up,
 484                                   msecs_to_jiffies(O2NET_QUORUM_DELAY_MS));
 485        }
 486
 487        if (was_valid && !valid) {
 488                printk(KERN_INFO "o2net: no longer connected to "
 489                       SC_NODEF_FMT "\n", SC_NODEF_ARGS(old_sc));
 490                o2net_complete_nodes_nsw(nn);
 491        }
 492
 493        if (!was_valid && valid) {
 494                o2quo_conn_up(o2net_num_from_nn(nn));
 495                cancel_delayed_work(&nn->nn_connect_expired);
 496                printk(KERN_INFO "o2net: %s " SC_NODEF_FMT "\n",
 497                       o2nm_this_node() > sc->sc_node->nd_num ?
 498                                       "connected to" : "accepted connection from",
 499                       SC_NODEF_ARGS(sc));
Show full sources