]> git.baikalelectronics.ru Git - kernel.git/commit
nfs/nfsd/sunrpc: enforce transport requirements for NFSv4
authorJeff Layton <jlayton@redhat.com>
Fri, 24 Feb 2017 18:25:24 +0000 (13:25 -0500)
committerJ. Bruce Fields <bfields@redhat.com>
Fri, 24 Feb 2017 22:03:34 +0000 (17:03 -0500)
commit378c5deca34945981e49238f4c1db614eeafa486
treec2d955f18bd4390a4e52347052a2b3a7be745def
parent35d567dcf2502cad197f1e63015d1b367ed01d4b
nfs/nfsd/sunrpc: enforce transport requirements for NFSv4

NFSv4 requires a transport "that is specified to avoid network
congestion" (RFC 7530, section 3.1, paragraph 2).  In practical terms,
that means that you should not run NFSv4 over UDP. The server has never
enforced that requirement, however.

This patchset fixes this by adding a new flag to the svc_version that
states that it has these transport requirements. With that, we can check
that the transport has XPT_CONG_CTRL set before processing an RPC. If it
doesn't we reject it with RPC_PROG_MISMATCH.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfs/callback_xdr.c
fs/nfsd/nfs4proc.c
include/linux/sunrpc/svc.h
net/sunrpc/svc.c