RPC: Do not block on skb allocation
If we get something like the following,
[ 125.300636] [<
c04086e1>] schedule_timeout+0x54/0xa5
[ 125.305931] [<
c040866e>] io_schedule_timeout+0x29/0x33
[ 125.311495] [<
c02880c4>] blk_congestion_wait+0x70/0x85
[ 125.317058] [<
c014136b>] throttle_vm_writeout+0x69/0x7d
[ 125.322720] [<
c014714d>] shrink_zone+0xe0/0xfa
[ 125.327560] [<
c01471d4>] shrink_caches+0x6d/0x6f
[ 125.332581] [<
c01472a6>] try_to_free_pages+0xd0/0x1b5
[ 125.338056] [<
c013fa4b>] __alloc_pages+0x135/0x2e8
[ 125.343258] [<
c03b74ad>] tcp_sendmsg+0xaa0/0xb78
[ 125.348281] [<
c03d4666>] inet_sendmsg+0x48/0x53
[ 125.353212] [<
c0388716>] sock_sendmsg+0xb8/0xd3
[ 125.358147] [<
c0388773>] kernel_sendmsg+0x42/0x4f
[ 125.363259] [<
c038bc00>] sock_no_sendpage+0x5e/0x77
[ 125.368556] [<
c03ee7af>] xs_tcp_send_request+0x2af/0x375
then the socket is blocked until memory is reclaimed, and no
progress can ever be made.
Try to access the emergency pools by using GFP_ATOMIC.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>