Index: nfs-utils-1.2.8/utils/nfsidmap/nfsidmap.c =================================================================== --- nfs-utils-1.2.8.orig/utils/nfsidmap/nfsidmap.c +++ nfs-utils-1.2.8/utils/nfsidmap/nfsidmap.c @@ -33,6 +33,8 @@ char *usage="Usage: %s [-v] [-c || [-u|- static int keyring_clear(char *keyring); +int timeout = 600; + #define UIDKEYS 0x1 #define GIDKEYS 0x2 @@ -58,6 +60,9 @@ int id_lookup(char *name_at_domain, key_ (type == USER ? "nfs4_owner_to_uid" : "nfs4_group_owner_to_gid")); if (rc == 0) { + /* Set timeout to 10 (600 seconds) minutes */ + keyctl_set_timeout(key, timeout); + rc = keyctl_instantiate(key, id, strlen(id) + 1, 0); if (rc < 0) { switch(rc) { @@ -112,6 +117,9 @@ int name_lookup(char *id, key_serial_t k (type == USER ? "nfs4_uid_to_name" : "nfs4_gid_to_name")); if (rc == 0) { + /* Set timeout to 10 (600 seconds) minutes */ + keyctl_set_timeout(key, timeout); + rc = keyctl_instantiate(key, &name, strlen(name), 0); if (rc < 0) xlog_err("name_lookup: keyctl_instantiate failed: %m"); @@ -230,7 +238,6 @@ int main(int argc, char **argv) char *value; char *type; int rc = 1, opt; - int timeout = 600; key_serial_t key; char *progname, *keystr = NULL; int clearing = 0, keymask = 0; @@ -323,10 +330,6 @@ int main(int argc, char **argv) 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; }