aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/chunk.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/sctp/chunk.c')
-rw-r--r--net/sctp/chunk.c23
1 files changed, 5 insertions, 18 deletions
diff --git a/net/sctp/chunk.c b/net/sctp/chunk.c
index 4d3128f5ccc3..1748ef90950c 100644
--- a/net/sctp/chunk.c
+++ b/net/sctp/chunk.c
@@ -66,9 +66,10 @@ SCTP_STATIC struct sctp_datamsg *sctp_datamsg_new(gfp_t gfp)
66{ 66{
67 struct sctp_datamsg *msg; 67 struct sctp_datamsg *msg;
68 msg = kmalloc(sizeof(struct sctp_datamsg), gfp); 68 msg = kmalloc(sizeof(struct sctp_datamsg), gfp);
69 if (msg) 69 if (msg) {
70 sctp_datamsg_init(msg); 70 sctp_datamsg_init(msg);
71 SCTP_DBG_OBJCNT_INC(datamsg); 71 SCTP_DBG_OBJCNT_INC(datamsg);
72 }
72 return msg; 73 return msg;
73} 74}
74 75
@@ -136,20 +137,6 @@ void sctp_datamsg_put(struct sctp_datamsg *msg)
136 sctp_datamsg_destroy(msg); 137 sctp_datamsg_destroy(msg);
137} 138}
138 139
139/* Free a message. Really just give up a reference, the
140 * really free happens in sctp_datamsg_destroy().
141 */
142void sctp_datamsg_free(struct sctp_datamsg *msg)
143{
144 sctp_datamsg_put(msg);
145}
146
147/* Hold on to all the fragments until all chunks have been sent. */
148void sctp_datamsg_track(struct sctp_chunk *chunk)
149{
150 sctp_chunk_hold(chunk);
151}
152
153/* Assign a chunk to this datamsg. */ 140/* Assign a chunk to this datamsg. */
154static void sctp_datamsg_assign(struct sctp_datamsg *msg, struct sctp_chunk *chunk) 141static void sctp_datamsg_assign(struct sctp_datamsg *msg, struct sctp_chunk *chunk)
155{ 142{
@@ -189,7 +176,7 @@ struct sctp_datamsg *sctp_datamsg_from_user(struct sctp_association *asoc,
189 msecs_to_jiffies(sinfo->sinfo_timetolive); 176 msecs_to_jiffies(sinfo->sinfo_timetolive);
190 msg->can_abandon = 1; 177 msg->can_abandon = 1;
191 SCTP_DEBUG_PRINTK("%s: msg:%p expires_at: %ld jiffies:%ld\n", 178 SCTP_DEBUG_PRINTK("%s: msg:%p expires_at: %ld jiffies:%ld\n",
192 __FUNCTION__, msg, msg->expires_at, jiffies); 179 __func__, msg, msg->expires_at, jiffies);
193 } 180 }
194 181
195 max = asoc->frag_point; 182 max = asoc->frag_point;
@@ -295,7 +282,7 @@ errout:
295 chunk = list_entry(pos, struct sctp_chunk, frag_list); 282 chunk = list_entry(pos, struct sctp_chunk, frag_list);
296 sctp_chunk_free(chunk); 283 sctp_chunk_free(chunk);
297 } 284 }
298 sctp_datamsg_free(msg); 285 sctp_datamsg_put(msg);
299 return NULL; 286 return NULL;
300} 287}
301 288