rxrpc: Allow the kernel to mark a call as being non-interruptible
authorDavid Howells <dhowells@redhat.com>
Thu, 9 May 2019 07:21:21 +0000 (08:21 +0100)
committerDavid Howells <dhowells@redhat.com>
Thu, 16 May 2019 15:25:20 +0000 (16:25 +0100)
commitb960a34b73e4c1c972623bc2076e24b97588d09e
treeb7fafd6110ffa1aed594d55097755eea65da5d8d
parent0ab4c9594812c4bc5606daf0677ae304bf7ec8c8
rxrpc: Allow the kernel to mark a call as being non-interruptible

Allow kernel services using AF_RXRPC to indicate that a call should be
non-interruptible.  This allows kafs to make things like lock-extension and
writeback data storage calls non-interruptible.

If this is set, signals will be ignored for operations on that call where
possible - such as waiting to get a call channel on an rxrpc connection.

It doesn't prevent UDP sendmsg from being interrupted, but that will be
handled by packet retransmission.

rxrpc_kernel_recv_data() isn't affected by this since that never waits,
preferring instead to return -EAGAIN and leave the waiting to the caller.

Userspace initiated calls can't be set to be uninterruptible at this time.

Signed-off-by: David Howells <dhowells@redhat.com>
Documentation/networking/rxrpc.txt
fs/afs/rxrpc.c
include/net/af_rxrpc.h
net/rxrpc/af_rxrpc.c
net/rxrpc/ar-internal.h
net/rxrpc/call_object.c
net/rxrpc/conn_client.c
net/rxrpc/sendmsg.c