From 2c3cbf4f9ad39c9bf3515b1fdb91b635fd38d978 Mon Sep 17 00:00:00 2001 From: Andrew Perepechko Date: Tue, 15 Jun 2010 14:13:52 +0400 Subject: [PATCH] b=22121 report the right errno in l_getgroups sometimes, errno from getpwuid could be overridden by the calls to syslog facitilites, save it for the later report i=Johann Lombardi --- lustre/utils/l_getgroups.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lustre/utils/l_getgroups.c b/lustre/utils/l_getgroups.c index 10064b3..4f04f16 100644 --- a/lustre/utils/l_getgroups.c +++ b/lustre/utils/l_getgroups.c @@ -94,16 +94,17 @@ static void errlog(const char *fmt, ...) int get_groups_local(struct mds_grp_downcall_data **grp) { struct mds_grp_downcall_data *param; - int i, maxgroups, size; + int i, maxgroups, size, saved_errno; struct passwd *pw; struct group *gr; CHECK_DURATION_START; pw = getpwuid((*grp)->mgd_uid); + saved_errno = errno; CHECK_DURATION_END("getpwuid", 2); if (!pw) { errlog("no such user %u\n", (*grp)->mgd_uid); - (*grp)->mgd_err = errno ? errno : EIDRM; + (*grp)->mgd_err = saved_errno ? saved_errno : EIDRM; return sizeof(*param); } (*grp)->mgd_gid = pw->pw_gid; -- 1.8.3.1