This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch, master, updated. glibc-2.14-63-g99231d9
- From: drepper at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 2 Jul 2011 03:03:55 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.14-63-g99231d9
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 99231d9abe0fd74c7957d25b08c1d1ede4cae5a0 (commit)
via 445b4a53ea9d6c457c5f4ac1538102d8be0a5d89 (commit)
from 6d4d8e8eef734412bedfd3a0bcece15109155913 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=99231d9abe0fd74c7957d25b08c1d1ede4cae5a0
commit 99231d9abe0fd74c7957d25b08c1d1ede4cae5a0
Author: Ulrich Drepper <drepper@gmail.com>
Date: Fri Jul 1 23:02:09 2011 -0400
nscd cleanups
Cleanup and optimize last patch. Add timeout fixes also to the
services cache.
diff --git a/ChangeLog b/ChangeLog
index a4cd52e..802b569 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2011-07-01 Ulrich Drepper <drepper@gmail.com>
+
+ * nscd/pwdcache.c (cache_addpw): Cleanup. Add branch prediction.
+ * nscd/initgrcache.c (addinitgroupsX): Likewise.
+ * nscd/hstcache.c (cache_addhst): Likewise.
+ * nscd/grpcache.c (cache_addgr): Likewise.
+ * nscd/aicache.c (addhstaiX): Likewise
+ * nscd/servicescache.c (cache_addserv): Handle zero negtimeout.
+
2011-07-01 Thorsten Kukuk <kukuk@suse.de>
* nscd/pwdcache.c (cache_addpw): Handle zero negtimeout.
diff --git a/nscd/aicache.c b/nscd/aicache.c
index b136921..8d100f8 100644
--- a/nscd/aicache.c
+++ b/nscd/aicache.c
@@ -512,14 +512,15 @@ next_nip:
TEMP_FAILURE_RETRY (send (fd, ¬found, total, MSG_NOSIGNAL));
/* If we cannot permanently store the result, so be it. */
- if (db->negtimeout == 0)
+ if (__builtin_expect (db->negtimeout == 0, 0))
{
/* Mark the old entry as obsolete. */
if (dh != NULL)
dh->usable = false;
dataset = NULL;
}
- else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL)
+ else if ((dataset = mempool_alloc (db, (sizeof (struct dataset)
+ + req->key_len), 1)) != NULL)
{
dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
dataset->head.recsize = total;
diff --git a/nscd/hstcache.c b/nscd/hstcache.c
index 1f09c0b..4d68ade 100644
--- a/nscd/hstcache.c
+++ b/nscd/hstcache.c
@@ -142,13 +142,14 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req,
all_written = false;
/* If we cannot permanently store the result, so be it. */
- if (db->negtimeout == 0)
+ if (__builtin_expect (db->negtimeout == 0, 0))
{
/* Mark the old entry as obsolete. */
if (dh != NULL)
dh->usable = false;
}
- else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL)
+ else if ((dataset = mempool_alloc (db, (sizeof (struct dataset)
+ + req->key_len), 1)) != NULL)
{
dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
dataset->head.recsize = total;
diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c
index 7fd564d..4ac9942 100644
--- a/nscd/initgrcache.c
+++ b/nscd/initgrcache.c
@@ -1,5 +1,5 @@
/* Cache handling for host lookup.
- Copyright (C) 2004, 2005, 2006, 2008, 2009, 2011 Free Software Foundation, Inc.
+ Copyright (C) 2004-2006, 2008, 2009, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
@@ -203,13 +203,14 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
MSG_NOSIGNAL));
/* If we cannot permanently store the result, so be it. */
- if (db->negtimeout == 0)
+ if (__builtin_expect (db->negtimeout == 0, 0))
{
/* Mark the old entry as obsolete. */
if (dh != NULL)
dh->usable = false;
}
- else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL)
+ else if ((dataset = mempool_alloc (db, (sizeof (struct dataset)
+ + req->key_len), 1)) != NULL)
{
dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
dataset->head.recsize = total;
diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c
index 94e1c52..49e130c 100644
--- a/nscd/pwdcache.c
+++ b/nscd/pwdcache.c
@@ -125,13 +125,14 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
MSG_NOSIGNAL));
/* If we cannot permanently store the result, so be it. */
- if (db->negtimeout == 0)
+ if (__builtin_expect (db->negtimeout == 0, 0))
{
/* Mark the old entry as obsolete. */
if (dh != NULL)
dh->usable = false;
}
- else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL)
+ else if ((dataset = mempool_alloc (db, (sizeof (struct dataset)
+ + req->key_len), 1)) != NULL)
{
dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
dataset->head.recsize = total;
diff --git a/nscd/servicescache.c b/nscd/servicescache.c
index b0a2977..ec5a367 100644
--- a/nscd/servicescache.c
+++ b/nscd/servicescache.c
@@ -108,10 +108,15 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
written = TEMP_FAILURE_RETRY (send (fd, ¬found, total,
MSG_NOSIGNAL));
- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len,
- 1);
/* If we cannot permanently store the result, so be it. */
- if (dataset != NULL)
+ if (__builtin_expect (db->negtimeout == 0, 0))
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
+ dh->usable = false;
+ }
+ else if ((dataset = mempool_alloc (db, (sizeof (struct dataset)
+ + req->key_len), 1)) != NULL)
{
dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
dataset->head.recsize = total;
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=445b4a53ea9d6c457c5f4ac1538102d8be0a5d89
commit 445b4a53ea9d6c457c5f4ac1538102d8be0a5d89
Author: Thorsten Kukuk <kukuk@suse.de>
Date: Fri Jul 1 22:53:01 2011 -0400
Handle nscd negtimeout==0
diff --git a/ChangeLog b/ChangeLog
index e3a0b70..a4cd52e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2011-07-01 Thorsten Kukuk <kukuk@suse.de>
+
+ * nscd/pwdcache.c (cache_addpw): Handle zero negtimeout.
+ * nscd/initgrcache.c (addinitgroupsX): Likewise.
+ * nscd/hstcache.c (cache_addhst): Likewise.
+ * nscd/grpcache.c (cache_addgr): Likewise.
+ * nscd/aicache.c (addhstaiX): Likewise
+
2011-07-01 Andreas Schwab <schwab@redhat.com>
* nis/nss_compat/compat-pwd.c (getpwent_next_nss_netgr): Query NIS
diff --git a/nscd/aicache.c b/nscd/aicache.c
index 6c8d83a..b136921 100644
--- a/nscd/aicache.c
+++ b/nscd/aicache.c
@@ -511,9 +511,15 @@ next_nip:
if (fd != -1)
TEMP_FAILURE_RETRY (send (fd, ¬found, total, MSG_NOSIGNAL));
- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1);
/* If we cannot permanently store the result, so be it. */
- if (dataset != NULL)
+ if (db->negtimeout == 0)
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
+ dh->usable = false;
+ dataset = NULL;
+ }
+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL)
{
dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
dataset->head.recsize = total;
diff --git a/nscd/grpcache.c b/nscd/grpcache.c
index 0e7f81f..8a2f80c 100644
--- a/nscd/grpcache.c
+++ b/nscd/grpcache.c
@@ -118,10 +118,14 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
written = TEMP_FAILURE_RETRY (send (fd, ¬found, total,
MSG_NOSIGNAL));
- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len,
- 1);
/* If we cannot permanently store the result, so be it. */
- if (dataset != NULL)
+ if (db->negtimeout == 0)
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
+ dh->usable = false;
+ }
+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL)
{
dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
dataset->head.recsize = total;
diff --git a/nscd/hstcache.c b/nscd/hstcache.c
index 1ab5860..1f09c0b 100644
--- a/nscd/hstcache.c
+++ b/nscd/hstcache.c
@@ -141,10 +141,14 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req,
MSG_NOSIGNAL)) != total)
all_written = false;
- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len,
- 1);
/* If we cannot permanently store the result, so be it. */
- if (dataset != NULL)
+ if (db->negtimeout == 0)
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
+ dh->usable = false;
+ }
+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL)
{
dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
dataset->head.recsize = total;
diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c
index 8cb6cf1..7fd564d 100644
--- a/nscd/initgrcache.c
+++ b/nscd/initgrcache.c
@@ -202,10 +202,14 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
written = TEMP_FAILURE_RETRY (send (fd, ¬found, total,
MSG_NOSIGNAL));
- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len,
- 1);
/* If we cannot permanently store the result, so be it. */
- if (dataset != NULL)
+ if (db->negtimeout == 0)
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
+ dh->usable = false;
+ }
+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL)
{
dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
dataset->head.recsize = total;
diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c
index 47b8052..94e1c52 100644
--- a/nscd/pwdcache.c
+++ b/nscd/pwdcache.c
@@ -124,10 +124,14 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
written = TEMP_FAILURE_RETRY (send (fd, ¬found, total,
MSG_NOSIGNAL));
- dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len,
- 1);
/* If we cannot permanently store the result, so be it. */
- if (dataset != NULL)
+ if (db->negtimeout == 0)
+ {
+ /* Mark the old entry as obsolete. */
+ if (dh != NULL)
+ dh->usable = false;
+ }
+ else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL)
{
dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
dataset->head.recsize = total;
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 17 +++++++++++++++++
nscd/aicache.c | 11 +++++++++--
nscd/grpcache.c | 10 +++++++---
nscd/hstcache.c | 11 ++++++++---
nscd/initgrcache.c | 13 +++++++++----
nscd/pwdcache.c | 11 ++++++++---
nscd/servicescache.c | 11 ++++++++---
7 files changed, 66 insertions(+), 18 deletions(-)
hooks/post-receive
--
GNU C Library master sources