aboutsummaryrefslogtreecommitdiffstats
path: root/fs/dlm/lowcomms.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/dlm/lowcomms.c')
-rw-r--r--fs/dlm/lowcomms.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
index ce53dffd2366..3190ca973dd6 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