Whamcloud - gitweb
Return GFP_NOFS fix to socknal that was lost in autoconn code shuffle.
authoradilger <adilger>
Wed, 19 Nov 2003 21:36:22 +0000 (21:36 +0000)
committeradilger <adilger>
Wed, 19 Nov 2003 21:36:22 +0000 (21:36 +0000)
b=1933

lnet/klnds/socklnd/socklnd_cb.c
lustre/portals/knals/socknal/socknal_cb.c

index fd179f8..b6fdc18 100644 (file)
@@ -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,
index fd179f8..b6fdc18 100644 (file)
@@ -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,