Oops, new tar speedup patch

Felix von Leitner (leitner@math.fu-berlin.de)
Sun, 17 May 1998 14:15:44 +0200


Small omission in the group cache that would have marked all group
lookups after the first one as failed.

Sorry!

Felix

--- names.c Sun May 17 14:14:42 1998
+++ names.c.new Sun May 17 14:14:11 1998
@@ -48,6 +48,9 @@
static uid_t cached_uid; /* valid only if cached_uname is not empty */
static gid_t cached_gid; /* valid only if cached_gname is not empty */

+int lookup_failed = 0;
+int glookup_failed = 0;
+
/*------------------------------------------.
| Given UID, find the corresponding UNAME. |
`------------------------------------------*/
@@ -111,12 +114,18 @@
passwd = getpwnam (uname);
if (passwd)
{
+ lookup_failed = 0;
cached_uid = passwd->pw_uid;
strncpy (cached_uname, uname, UNAME_FIELD_SIZE);
}
- else
+ else {
+ lookup_failed = 1;
+ strncpy (cached_uname, uname, UNAME_FIELD_SIZE);
return 0;
+ }
}
+ if (lookup_failed)
+ return 0;
*uidp = cached_uid;
return 1;
}
@@ -137,12 +146,18 @@
group = getgrnam (gname);
if (group)
{
+ glookup_failed = 0;
cached_gid = group->gr_gid;
strncpy (cached_gname, gname, GNAME_FIELD_SIZE);
}
- else
+ else {
+ glookup_failed = 1;
+ strncpy (cached_gname, gname, GNAME_FIELD_SIZE);
return 0;
+ }
}
+ if (glookup_failed)
+ return 0;
*gidp = cached_gid;
return 1;
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu