[SCTP] Allow SCTP_MAXSEG to revert to default frag point with a '0' value.
Signed-off-by: Ivan Skytte Jorgensen <isj-sctp@i1.dk> Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
This commit is contained in:
parent
a1ab358269
commit
96a339985d
|
@ -2306,16 +2306,14 @@ static int sctp_setsockopt_maxseg(struct sock *sk, char __user *optval, int optl
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
if (get_user(val, (int __user *)optval))
|
if (get_user(val, (int __user *)optval))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
if ((val < 8) || (val > SCTP_MAX_CHUNK_LEN))
|
if ((val != 0) && ((val < 8) || (val > SCTP_MAX_CHUNK_LEN)))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
sp->user_frag = val;
|
sp->user_frag = val;
|
||||||
|
|
||||||
if (val) {
|
/* Update the frag_point of the existing associations. */
|
||||||
/* Update the frag_point of the existing associations. */
|
list_for_each(pos, &(sp->ep->asocs)) {
|
||||||
list_for_each(pos, &(sp->ep->asocs)) {
|
asoc = list_entry(pos, struct sctp_association, asocs);
|
||||||
asoc = list_entry(pos, struct sctp_association, asocs);
|
asoc->frag_point = sctp_frag_point(sp, asoc->pmtu);
|
||||||
asoc->frag_point = sctp_frag_point(sp, asoc->pmtu);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue