aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc/msg.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/tipc/msg.c')
-rw-r--r--net/tipc/msg.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/net/tipc/msg.c b/net/tipc/msg.c
index c3e96e815418..ff7362d40cb3 100644
--- a/net/tipc/msg.c
+++ b/net/tipc/msg.c
@@ -365,6 +365,9 @@ bool tipc_msg_bundle(struct sk_buff *bskb, struct sk_buff *skb, u32 mtu)
365 return false; 365 return false;
366 if (unlikely(max < (start + msz))) 366 if (unlikely(max < (start + msz)))
367 return false; 367 return false;
368 if ((msg_importance(msg) < TIPC_SYSTEM_IMPORTANCE) &&
369 (msg_importance(bmsg) == TIPC_SYSTEM_IMPORTANCE))
370 return false;
368 371
369 skb_put(bskb, pad + msz); 372 skb_put(bskb, pad + msz);
370 skb_copy_to_linear_data_offset(bskb, start, skb->data, msz); 373 skb_copy_to_linear_data_offset(bskb, start, skb->data, msz);
@@ -448,6 +451,10 @@ bool tipc_msg_make_bundle(struct sk_buff **skb, u32 mtu, u32 dnode)
448 bmsg = buf_msg(bskb); 451 bmsg = buf_msg(bskb);
449 tipc_msg_init(msg_prevnode(msg), bmsg, MSG_BUNDLER, 0, 452 tipc_msg_init(msg_prevnode(msg), bmsg, MSG_BUNDLER, 0,
450 INT_H_SIZE, dnode); 453 INT_H_SIZE, dnode);
454 if (msg_isdata(msg))
455 msg_set_importance(bmsg, TIPC_CRITICAL_IMPORTANCE);
456 else
457 msg_set_importance(bmsg, TIPC_SYSTEM_IMPORTANCE);
451 msg_set_seqno(bmsg, msg_seqno(msg)); 458 msg_set_seqno(bmsg, msg_seqno(msg));
452 msg_set_ack(bmsg, msg_ack(msg)); 459 msg_set_ack(bmsg, msg_ack(msg));
453 msg_set_bcast_ack(bmsg, msg_bcast_ack(msg)); 460 msg_set_bcast_ack(bmsg, msg_bcast_ack(msg));