From ad738e26a8421a052ecb53c9c829c9296e2780db Mon Sep 17 00:00:00 2001 From: adilger Date: Wed, 19 Nov 2003 21:36:22 +0000 Subject: [PATCH] Return GFP_NOFS fix to socknal that was lost in autoconn code shuffle. b=1933 --- lnet/klnds/socklnd/socklnd_cb.c | 10 ++++++---- lustre/portals/knals/socknal/socknal_cb.c | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/lnet/klnds/socklnd/socklnd_cb.c b/lnet/klnds/socklnd/socklnd_cb.c index fd179f8..b6fdc18 100644 --- a/lnet/klnds/socklnd/socklnd_cb.c +++ b/lnet/klnds/socklnd/socklnd_cb.c @@ -2123,28 +2123,30 @@ ksocknal_hello (struct socket *sock, ptl_nid_t *nid, int *type, __u64 *incarnati } int -ksocknal_setup_sock (struct socket *sock) +ksocknal_setup_sock (struct socket *sock) { mm_segment_t oldmm = get_fs (); int rc; int option; struct linger linger; + sock->sk->allocation = GFP_NOFS; + /* Ensure this socket aborts active sends immediately when we close * it. */ - + linger.l_onoff = 0; linger.l_linger = 0; set_fs (KERNEL_DS); - rc = sock_setsockopt (sock, SOL_SOCKET, SO_LINGER, + rc = sock_setsockopt (sock, SOL_SOCKET, SO_LINGER, (char *)&linger, sizeof (linger)); set_fs (oldmm); if (rc != 0) { CERROR ("Can't set SO_LINGER: %d\n", rc); return (rc); } - + option = -1; set_fs (KERNEL_DS); rc = sock->ops->setsockopt (sock, SOL_TCP, TCP_LINGER2, diff --git a/lustre/portals/knals/socknal/socknal_cb.c b/lustre/portals/knals/socknal/socknal_cb.c index fd179f8..b6fdc18 100644 --- a/lustre/portals/knals/socknal/socknal_cb.c +++ b/lustre/portals/knals/socknal/socknal_cb.c @@ -2123,28 +2123,30 @@ ksocknal_hello (struct socket *sock, ptl_nid_t *nid, int *type, __u64 *incarnati } int -ksocknal_setup_sock (struct socket *sock) +ksocknal_setup_sock (struct socket *sock) { mm_segment_t oldmm = get_fs (); int rc; int option; struct linger linger; + sock->sk->allocation = GFP_NOFS; + /* Ensure this socket aborts active sends immediately when we close * it. */ - + linger.l_onoff = 0; linger.l_linger = 0; set_fs (KERNEL_DS); - rc = sock_setsockopt (sock, SOL_SOCKET, SO_LINGER, + rc = sock_setsockopt (sock, SOL_SOCKET, SO_LINGER, (char *)&linger, sizeof (linger)); set_fs (oldmm); if (rc != 0) { CERROR ("Can't set SO_LINGER: %d\n", rc); return (rc); } - + option = -1; set_fs (KERNEL_DS); rc = sock->ops->setsockopt (sock, SOL_TCP, TCP_LINGER2, -- 1.8.3.1