[PATCH] NFS: Check return value from rpc_queue_upcall()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Bryan Schumaker <bjschuma@xxxxxxxxxx>

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@xxxxxxxxxx>

---
 fs/nfs/idmap.c |    9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/fs/nfs/idmap.c b/fs/nfs/idmap.c
index f9f89fc..a701a83 100644
--- a/fs/nfs/idmap.c
+++ b/fs/nfs/idmap.c
@@ -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;
 }
 
-- 
1.7.9.2

--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux