[SCTP] Allow SCTP_MAXSEG to revert to default frag point with a '0' value.
authorIvan Skytte Jorgensen <isj-sctp@i1.dk>
Fri, 28 Oct 2005 22:36:12 +0000 (15:36 -0700)
committerSridhar Samudrala <sri@us.ibm.com>
Fri, 28 Oct 2005 22:36:12 +0000 (15:36 -0700)
Signed-off-by: Ivan Skytte Jorgensen <isj-sctp@i1.dk>
Signed-off-by: Sridhar Samudrala <sri@us.ibm.com>
net/sctp/socket.c

index c66c161908c0dbd9b784a5eae74a8df8b399c24b..97b556c1c45026ed955ff5cc92be007060f66708 100644 (file)
@@ -2306,16 +2306,14 @@ static int sctp_setsockopt_maxseg(struct sock *sk, char __user *optval, int optl
                return -EINVAL;
        if (get_user(val, (int __user *)optval))
                return -EFAULT;
-       if ((val < 8) || (val > SCTP_MAX_CHUNK_LEN))
+       if ((val != 0) && ((val < 8) || (val > SCTP_MAX_CHUNK_LEN)))
                return -EINVAL;
        sp->user_frag = val;
 
-       if (val) {
-               /* Update the frag_point of the existing associations. */
-               list_for_each(pos, &(sp->ep->asocs)) {
-                       asoc = list_entry(pos, struct sctp_association, asocs);
-                       asoc->frag_point = sctp_frag_point(sp, asoc->pmtu); 
-               }
+       /* Update the frag_point of the existing associations. */
+       list_for_each(pos, &(sp->ep->asocs)) {
+               asoc = list_entry(pos, struct sctp_association, asocs);
+               asoc->frag_point = sctp_frag_point(sp, asoc->pmtu); 
        }
 
        return 0;