Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit acc631bf authored by Allan Stephens's avatar Allan Stephens Committed by Paul Gortmaker
Browse files

tipc: Standardize exit logic for message rejection handling



Modifies the routine that handles the rejection of payload messages
so that it has a single exit point that frees up the rejected message,
thereby eliminating some duplicated code.

Signed-off-by: default avatarAllan Stephens <allan.stephens@windriver.com>
Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
parent 7ae4738e
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -367,10 +367,8 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err)
		imp++;

	/* discard rejected message if it shouldn't be returned to sender */
	if (msg_errcode(msg) || msg_dest_droppable(msg)) {
		buf_discard(buf);
		return data_sz;
	}
	if (msg_errcode(msg) || msg_dest_droppable(msg))
		goto exit;

	/* construct rejected message */
	if (msg_mcast(msg))
@@ -378,10 +376,9 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err)
	else
		hdr_sz = LONG_H_SIZE;
	rbuf = tipc_buf_acquire(data_sz + hdr_sz);
	if (rbuf == NULL) {
		buf_discard(buf);
		return data_sz;
	}
	if (rbuf == NULL)
		goto exit;

	rmsg = buf_msg(rbuf);
	tipc_msg_init(rmsg, imp, msg_type(msg), hdr_sz, msg_orignode(msg));
	msg_set_errcode(rmsg, err);
@@ -411,9 +408,11 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err)
		tipc_net_route_msg(abuf);
	}

	/* send rejected message */
	buf_discard(buf);
	/* send returned message & dispose of rejected message */

	tipc_net_route_msg(rbuf);
exit:
	buf_discard(buf);
	return data_sz;
}