diff mbox

[01/01] Allow nfsidmap to set key timeout

Message ID 1350930905/oystr@maui.cs.washington.edu (mailing list archive)
State New, archived
Headers show

Commit Message

Jan Sanislo Oct. 22, 2012, 6:35 p.m. UTC
nfsidmap calls keyctl_set_timeout after the key has been
instantiated, by which time our key modification privileges
have been removed.  Move the timeout setting prior to key
instantiation.

Reviewed-by: Jeff Layton jlayton@redhat.com
Signed-off-by: Jan Sanislo oystr@cs.washington.edu

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

Patch

--- a/nfs-utils-1.2.6/utils/nfsidmap/nfsidmap.c
+++ b/nfs-utils-1.2.6/utils/nfsidmap/nfsidmap.c
@@ -320,6 +320,16 @@ 
 			key, type, value, timeout);
 	}
 
+	/*
+	 * Set timeout before instantiation revokes our rights
+	 * over the key.
+	 */
+	if ( timeout > 0 ) {
+		rc = keyctl_set_timeout(key, timeout);
+		if ( rc != 0 )
+			xlog_warn("keyctl_set_timeout key 0x%x failed: %m",key);
+	}
+
 	if (strcmp(type, "uid") == 0)
 		rc = id_lookup(value, key, USER);
 	else if (strcmp(type, "gid") == 0)
@@ -329,10 +339,6 @@ 
 	else if (strcmp(type, "group") == 0)
 		rc = name_lookup(value, key, GROUP);
 
-	/* Set timeout to 10 (600 seconds) minutes */
-	if (rc == 0)
-		keyctl_set_timeout(key, timeout);
-
 	free(arg);
 	return rc;
 }