Skip to content

Commit

Permalink
tipc: Handle broadcast attempt when no neighboring nodes exist
Browse files Browse the repository at this point in the history
Adds a check to detect when an attempt is made to send a message
via the broadcast link and no neighboring nodes are currently available
to receive it. Rather than wasting effort passing the message to the
broadcast link and broadcast bearer, who will only throw it away,
TIPC now frees the message immediately and reports success (i.e. the
message has been delivered to all available destinations).

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
  • Loading branch information
Allan Stephens authored and Paul Gortmaker committed Dec 27, 2011
1 parent cd3decd commit 2b78f9a
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion net/tipc/bcast.c
Original file line number Diff line number Diff line change
Expand Up @@ -417,13 +417,19 @@ int tipc_bclink_send_msg(struct sk_buff *buf)

spin_lock_bh(&bc_lock);

if (!bclink->bcast_nodes.count) {
res = msg_data_sz(buf_msg(buf));
buf_discard(buf);
goto exit;
}

res = tipc_link_send_buf(bcl, buf);
if (likely(res > 0))
bclink_set_last_sent();

bcl->stats.queue_sz_counts++;
bcl->stats.accu_queue_sz += bcl->out_queue_size;

exit:
spin_unlock_bh(&bc_lock);
return res;
}
Expand Down

0 comments on commit 2b78f9a

Please sign in to comment.