From c50f370f98e5f5d24d18ca3df444770dacce1824 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Fri, 24 Nov 2006 14:57:31 +0000 Subject: tar: cache [ug]id->username/groupname mappings. Cuts down amount of open/read/close of /etc/passwd and /etc/group dramatically (we were rereading those for each untarred file!!!) --- archival/tar.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'archival/tar.c') diff --git a/archival/tar.c b/archival/tar.c index 99c4adb6a..51d34ea19 100644 --- a/archival/tar.c +++ b/archival/tar.c @@ -211,12 +211,9 @@ static int writeTarHeader(struct TarBallInfo *tbInfo, putOctal(header.mtime, sizeof(header.mtime), statbuf->st_mtime); strcpy(header.magic, "ustar "); - /* Enter the user and group names (default to root if it fails) */ -//cache!!! - if (bb_getpwuid(header.uname, statbuf->st_uid, sizeof(header.uname)) == NULL) - strcpy(header.uname, "root"); - if (bb_getgrgid(header.gname, statbuf->st_gid, sizeof(header.gname)) == NULL) - strcpy(header.gname, "root"); + /* Enter the user and group names */ + safe_strncpy(header.uname, get_cached_username(statbuf->st_uid), sizeof(header.uname)); + safe_strncpy(header.gname, get_cached_groupname(statbuf->st_gid), sizeof(header.gname)); if (tbInfo->hlInfo) { /* This is a hard link */ -- cgit v1.2.3