Skip to content

Commit

Permalink
sunrpc: fix potential race between setting use_gss_proxy and the upca…
Browse files Browse the repository at this point in the history
…ll rpc_clnt

An nfsd thread can call use_gss_proxy and find it set to '1' but find
gssp_clnt still NULL, so that when it attempts the upcall the result
will be an unnecessary -EIO.

So, ensure that gssp_clnt is created first, and set the use_gss_proxy
variable only if that succeeds.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
  • Loading branch information
Jeff Layton authored and J. Bruce Fields committed Jan 6, 2014
1 parent 1654a04 commit a92e5eb
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions net/sunrpc/auth_gss/svcauth_gss.c
Original file line number Diff line number Diff line change
Expand Up @@ -1317,10 +1317,10 @@ static ssize_t write_gssp(struct file *file, const char __user *buf,
return res;
if (i != 1)
return -EINVAL;
res = set_gss_proxy(net, 1);
res = set_gssp_clnt(net);
if (res)
return res;
res = set_gssp_clnt(net);
res = set_gss_proxy(net, 1);
if (res)
return res;
return count;
Expand Down

0 comments on commit a92e5eb

Please sign in to comment.