diff options
Diffstat (limited to 'net/sctp/chunk.c')
-rw-r--r-- | net/sctp/chunk.c | 23 |
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 | */ | ||
142 | void 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. */ | ||
148 | void 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. */ |
154 | static void sctp_datamsg_assign(struct sctp_datamsg *msg, struct sctp_chunk *chunk) | 141 | static 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 | ||