|
50 | 50 | #include <linux/bvec.h> |
51 | 51 | #include <linux/highmem.h> |
52 | 52 | #include <linux/uio.h> |
| 53 | +#include <linux/sched/mm.h> |
53 | 54 |
|
54 | 55 | #include <trace/events/sunrpc.h> |
55 | 56 |
|
@@ -680,7 +681,10 @@ static void xs_stream_data_receive_workfn(struct work_struct *work) |
680 | 681 | { |
681 | 682 | struct sock_xprt *transport = |
682 | 683 | container_of(work, struct sock_xprt, recv_worker); |
| 684 | + unsigned int pflags = memalloc_nofs_save(); |
| 685 | + |
683 | 686 | xs_stream_data_receive(transport); |
| 687 | + memalloc_nofs_restore(pflags); |
684 | 688 | } |
685 | 689 |
|
686 | 690 | static void |
@@ -1378,7 +1382,10 @@ static void xs_udp_data_receive_workfn(struct work_struct *work) |
1378 | 1382 | { |
1379 | 1383 | struct sock_xprt *transport = |
1380 | 1384 | container_of(work, struct sock_xprt, recv_worker); |
| 1385 | + unsigned int pflags = memalloc_nofs_save(); |
| 1386 | + |
1381 | 1387 | xs_udp_data_receive(transport); |
| 1388 | + memalloc_nofs_restore(pflags); |
1382 | 1389 | } |
1383 | 1390 |
|
1384 | 1391 | /** |
@@ -1869,7 +1876,6 @@ static int xs_local_finish_connecting(struct rpc_xprt *xprt, |
1869 | 1876 | sk->sk_write_space = xs_udp_write_space; |
1870 | 1877 | sock_set_flag(sk, SOCK_FASYNC); |
1871 | 1878 | sk->sk_error_report = xs_error_report; |
1872 | | - sk->sk_allocation = GFP_NOIO; |
1873 | 1879 |
|
1874 | 1880 | xprt_clear_connected(xprt); |
1875 | 1881 |
|
@@ -2057,7 +2063,6 @@ static void xs_udp_finish_connecting(struct rpc_xprt *xprt, struct socket *sock) |
2057 | 2063 | sk->sk_data_ready = xs_data_ready; |
2058 | 2064 | sk->sk_write_space = xs_udp_write_space; |
2059 | 2065 | sock_set_flag(sk, SOCK_FASYNC); |
2060 | | - sk->sk_allocation = GFP_NOIO; |
2061 | 2066 |
|
2062 | 2067 | xprt_set_connected(xprt); |
2063 | 2068 |
|
@@ -2220,7 +2225,6 @@ static int xs_tcp_finish_connecting(struct rpc_xprt *xprt, struct socket *sock) |
2220 | 2225 | sk->sk_write_space = xs_tcp_write_space; |
2221 | 2226 | sock_set_flag(sk, SOCK_FASYNC); |
2222 | 2227 | sk->sk_error_report = xs_error_report; |
2223 | | - sk->sk_allocation = GFP_NOIO; |
2224 | 2228 |
|
2225 | 2229 | /* socket options */ |
2226 | 2230 | sock_reset_flag(sk, SOCK_LINGER); |
|
0 commit comments