nscd cleanups
authorUlrich Drepper <drepper@gmail.com>
Sat, 2 Jul 2011 03:02:09 +0000 (23:02 -0400)
committerUlrich Drepper <drepper@gmail.com>
Sat, 2 Jul 2011 03:02:09 +0000 (23:02 -0400)
Cleanup and optimize last patch.  Add timeout fixes also to the
services cache.

ChangeLog
nscd/aicache.c
nscd/hstcache.c
nscd/initgrcache.c
nscd/pwdcache.c
nscd/servicescache.c

index a4cd52e..802b569 100644 (file)
--- 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.
index b136921..8d100f8 100644 (file)
@@ -512,14 +512,15 @@ next_nip:
        TEMP_FAILURE_RETRY (send (fd, &notfound, 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;
index 1f09c0b..4d68ade 100644 (file)
@@ -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;
index 7fd564d..4ac9942 100644 (file)
@@ -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;
index 94e1c52..49e130c 100644 (file)
@@ -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;
index b0a2977..ec5a367 100644 (file)
@@ -108,10 +108,15 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
            written = TEMP_FAILURE_RETRY (send (fd, &notfound, 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;