NFS: Check return value from rpc_queue_upcall()

This function could fail to queue the upcall if rpc.idmapd is not running,
causing a warning message to be printed.  Instead, I want to check the
return value and revoke the key if the upcall can't be run.

Signed-off-by: Bryan Schumaker <bjschuma@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
Bryan Schumaker 2012-03-12 11:33:00 -04:00 committed by Trond Myklebust
parent 4b7c8dd205
commit 11588f493a
1 changed files with 7 additions and 2 deletions

View File

@ -656,14 +656,19 @@ static int nfs_idmap_legacy_upcall(struct key_construction *cons,
idmap->idmap_key_cons = cons;
return rpc_queue_upcall(idmap->idmap_pipe, msg);
ret = rpc_queue_upcall(idmap->idmap_pipe, msg);
if (ret < 0)
goto out2;
return ret;
out2:
kfree(im);
out1:
kfree(msg);
out0:
complete_request_key(cons, ret);
key_revoke(cons->key);
key_revoke(cons->authkey);
return ret;
}