diff --git a/kmod/src/net.c b/kmod/src/net.c index 7a104c4f..93478a5f 100644 --- a/kmod/src/net.c +++ b/kmod/src/net.c @@ -991,6 +991,8 @@ static void scoutfs_net_listen_worker(struct work_struct *work) if (ret < 0) break; + acc_sock->sk->sk_allocation = GFP_NOFS; + /* inherit accepted request funcs from listening conn */ acc_conn = scoutfs_net_alloc_conn(sb, conn->notify_up, conn->notify_down, @@ -1053,6 +1055,8 @@ static void scoutfs_net_connect_worker(struct work_struct *work) if (ret) goto out; + sock->sk->sk_allocation = GFP_NOFS; + /* caller specified connect timeout */ tv.tv_sec = conn->connect_timeout_ms / MSEC_PER_SEC; tv.tv_usec = (conn->connect_timeout_ms % MSEC_PER_SEC) * USEC_PER_MSEC; @@ -1450,6 +1454,8 @@ int scoutfs_net_bind(struct super_block *sb, if (ret) goto out; + sock->sk->sk_allocation = GFP_NOFS; + optval = 1; ret = kernel_setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (char *)&optval, sizeof(optval));