mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-28 09:31:14 +00:00
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: Allan Stephens <allan.stephens@windriver.com> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
This commit is contained in:
parent
7ae4738e9e
commit
acc631bf6f
1 changed files with 9 additions and 10 deletions
|
@ -367,10 +367,8 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err)
|
||||||
imp++;
|
imp++;
|
||||||
|
|
||||||
/* discard rejected message if it shouldn't be returned to sender */
|
/* discard rejected message if it shouldn't be returned to sender */
|
||||||
if (msg_errcode(msg) || msg_dest_droppable(msg)) {
|
if (msg_errcode(msg) || msg_dest_droppable(msg))
|
||||||
buf_discard(buf);
|
goto exit;
|
||||||
return data_sz;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* construct rejected message */
|
/* construct rejected message */
|
||||||
if (msg_mcast(msg))
|
if (msg_mcast(msg))
|
||||||
|
@ -378,10 +376,9 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err)
|
||||||
else
|
else
|
||||||
hdr_sz = LONG_H_SIZE;
|
hdr_sz = LONG_H_SIZE;
|
||||||
rbuf = tipc_buf_acquire(data_sz + hdr_sz);
|
rbuf = tipc_buf_acquire(data_sz + hdr_sz);
|
||||||
if (rbuf == NULL) {
|
if (rbuf == NULL)
|
||||||
buf_discard(buf);
|
goto exit;
|
||||||
return data_sz;
|
|
||||||
}
|
|
||||||
rmsg = buf_msg(rbuf);
|
rmsg = buf_msg(rbuf);
|
||||||
tipc_msg_init(rmsg, imp, msg_type(msg), hdr_sz, msg_orignode(msg));
|
tipc_msg_init(rmsg, imp, msg_type(msg), hdr_sz, msg_orignode(msg));
|
||||||
msg_set_errcode(rmsg, err);
|
msg_set_errcode(rmsg, err);
|
||||||
|
@ -411,9 +408,11 @@ int tipc_reject_msg(struct sk_buff *buf, u32 err)
|
||||||
tipc_net_route_msg(abuf);
|
tipc_net_route_msg(abuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* send rejected message */
|
/* send returned message & dispose of rejected message */
|
||||||
buf_discard(buf);
|
|
||||||
tipc_net_route_msg(rbuf);
|
tipc_net_route_msg(rbuf);
|
||||||
|
exit:
|
||||||
|
buf_discard(buf);
|
||||||
return data_sz;
|
return data_sz;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue