diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-21 20:42:55 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-21 20:42:55 -0500 |
commit | ff0bc6cc7f20cfaf9aed4055773158f3f295b28b (patch) | |
tree | ba968e3dc1fbdb730941fca5842b988fccba368c /fs | |
parent | 2182c815f3d430598e172c1c3ac88df775ea120e (diff) | |
parent | ece35848c1847cdf3dd07954578d3e99238ebbae (diff) |
Merge tag 'dlm-3.14' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm
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
Diffstat (limited to 'fs')
-rw-r--r-- | fs/dlm/lowcomms.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c index d90909ec6aa6..a5e34dd6a32c 100644 --- a/fs/dlm/lowcomms.c +++ b/fs/dlm/lowcomms.c | |||
@@ -649,6 +649,7 @@ static void process_sctp_notification(struct connection *con, | |||
649 | struct msghdr *msg, char *buf) | 649 | struct msghdr *msg, char *buf) |
650 | { | 650 | { |
651 | union sctp_notification *sn = (union sctp_notification *)buf; | 651 | union sctp_notification *sn = (union sctp_notification *)buf; |
652 | struct linger linger; | ||
652 | 653 | ||
653 | switch (sn->sn_header.sn_type) { | 654 | switch (sn->sn_header.sn_type) { |
654 | case SCTP_SEND_FAILED: | 655 | case SCTP_SEND_FAILED: |
@@ -727,6 +728,13 @@ static void process_sctp_notification(struct connection *con, | |||
727 | } | 728 | } |
728 | add_sock(new_con->sock, new_con); | 729 | add_sock(new_con->sock, new_con); |
729 | 730 | ||
731 | linger.l_onoff = 1; | ||
732 | linger.l_linger = 0; | ||
733 | ret = kernel_setsockopt(new_con->sock, SOL_SOCKET, SO_LINGER, | ||
734 | (char *)&linger, sizeof(linger)); | ||
735 | if (ret < 0) | ||
736 | log_print("set socket option SO_LINGER failed"); | ||
737 | |||
730 | log_print("connecting to %d sctp association %d", | 738 | log_print("connecting to %d sctp association %d", |
731 | nodeid, (int)sn->sn_assoc_change.sac_assoc_id); | 739 | nodeid, (int)sn->sn_assoc_change.sac_assoc_id); |
732 | 740 | ||