Merge tag 'dlm-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 22 Jan 2014 01:42:55 +0000 (17:42 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 22 Jan 2014 01:42:55 +0000 (17:42 -0800)
Pull dlm update from David Teigland:
 "A single change to speed up recovery times when using SCTP
  connections"

* tag 'dlm-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
  dlm: set zero linger time on sctp socket

fs/dlm/lowcomms.c

index d90909ec6aa6bc5dd846b0545773b8cee0bee7d8..a5e34dd6a32c91ac8bd7f85834e4f241a929bec8 100644 (file)
@@ -649,6 +649,7 @@ static void process_sctp_notification(struct connection *con,
                                      struct msghdr *msg, char *buf)
 {
        union sctp_notification *sn = (union sctp_notification *)buf;
+       struct linger linger;
 
        switch (sn->sn_header.sn_type) {
        case SCTP_SEND_FAILED:
@@ -727,6 +728,13 @@ static void process_sctp_notification(struct connection *con,
                        }
                        add_sock(new_con->sock, new_con);
 
+                       linger.l_onoff = 1;
+                       linger.l_linger = 0;
+                       ret = kernel_setsockopt(new_con->sock, SOL_SOCKET, SO_LINGER,
+                                               (char *)&linger, sizeof(linger));
+                       if (ret < 0)
+                               log_print("set socket option SO_LINGER failed");
+
                        log_print("connecting to %d sctp association %d",
                                 nodeid, (int)sn->sn_assoc_change.sac_assoc_id);