Solomon Boulos has uploaded this change for review.

View Change

PROXY_V3: work around bindresvport threadsafety.

To get a privileged port, the V3 proxy's rpc code
asks bindresvport_sa to hand us one. Modern versions
of glibc (since 2.17) are thread-safe, but many existing
implementations (including libntirpc) just use a local
static variable for the "choose a port". The V4 proxy
calls the related rresvport_af but is holding a lock,
so it's at least single threaded amongst itself.

The race here was causing the client port to sometimes be an
unprivileged port, so knfsd was correctly returning a
permission error.

Change-Id: I5a9f60451cf9154130a6f3fc21979cbe6e6d2049
Fixes: #580
Signed-off-by: Solomon Boulos <boulos@google.com>
---
M src/FSAL/FSAL_PROXY_V3/rpc.c
1 file changed, 30 insertions(+), 1 deletion(-)

git pull ssh://review.gerrithub.io:29418/ffilz/nfs-ganesha refs/changes/53/502353/1

To view, visit change 502353. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: ffilz/nfs-ganesha
Gerrit-Branch: next
Gerrit-Change-Id: I5a9f60451cf9154130a6f3fc21979cbe6e6d2049
Gerrit-Change-Number: 502353
Gerrit-PatchSet: 1
Gerrit-Owner: Solomon Boulos <boulos@google.com>
Gerrit-MessageType: newchange