This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, master, updated. glibc-2.10-162-g00ebd7e


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  00ebd7ed58df389a78e41dece058048725cb585e (commit)
      from  09f97a8fbf8be28cc489a7baa1bead17e2cbf764 (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=00ebd7ed58df389a78e41dece058048725cb585e

commit 00ebd7ed58df389a78e41dece058048725cb585e
Author: Ulrich Drepper <drepper@redhat.com>
Date:   Fri Jul 17 07:49:16 2009 -0700

    Revert "Fix lock handling in memory hander of nscd."
    
    This reverts commit 137028b4d7e50f71906c1656c27079eac5a1d085.
    
    Conflicts:
    
    	ChangeLog

diff --git a/ChangeLog b/ChangeLog
index 6418f86..dce8cbc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,17 +4,6 @@
 	* resolv/res-mkquery.c (__res_nopt): If anslen is > 0xffff store
 	0xffff in the EDNS0 record.
 
-2009-07-16  Petr Baudis  <pasky@suse.cz>
-
-	[BZ #10402]
-	* nscd/mem.c (mempool_alloc): Fix unlock missing in the else branch.
-	* nscd/aicache.c: Remove bogus db->lock unlock.
-	* nscd/grpcache.c: Likewise.
-	* nscd/hstcache.c: Likewise.
-	* nscd/initgrcache.c: Likewise.
-	* nscd/pwdcache.c: Likewise.
-	* nscd/servicescache.c: Likewise.
-
 2009-07-16  Ulrich Drepper  <drepper@redhat.com>
 
 	* nscd/cache.c (cache_add): Use atomic_compare_and_exchange_bool_rel
diff --git a/nscd/aicache.c b/nscd/aicache.c
index 8dac48e..524c0a6 100644
--- a/nscd/aicache.c
+++ b/nscd/aicache.c
@@ -543,6 +543,8 @@ next_nip:
       (void) cache_add (req->type, key_copy, req->key_len, &dataset->head,
 			true, db, uid, he == NULL);
 
+      pthread_rwlock_unlock (&db->lock);
+
       /* Mark the old entry as obsolete.  */
       if (dh != NULL)
 	dh->usable = false;
diff --git a/nscd/grpcache.c b/nscd/grpcache.c
index fc20084..184d538 100644
--- a/nscd/grpcache.c
+++ b/nscd/grpcache.c
@@ -146,6 +146,8 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
 	      (void) cache_add (req->type, &dataset->strdata, req->key_len,
 				&dataset->head, true, db, owner, he == NULL);
 
+	      pthread_rwlock_unlock (&db->lock);
+
 	      /* Mark the old entry as obsolete.  */
 	      if (dh != NULL)
 		dh->usable = false;
@@ -365,10 +367,12 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
 		(void) cache_add (GETGRBYGID, cp, key_offset, &dataset->head,
 				  false, db, owner, false);
 	    }
+
+	out:
+	  pthread_rwlock_unlock (&db->lock);
 	}
     }
 
-out:
   if (__builtin_expect (written != total, 0) && debug_level > 0)
     {
       char buf[256];
diff --git a/nscd/hstcache.c b/nscd/hstcache.c
index 77ffcdf..51e2273 100644
--- a/nscd/hstcache.c
+++ b/nscd/hstcache.c
@@ -153,6 +153,8 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req,
 	      (void) cache_add (req->type, &dataset->strdata, req->key_len,
 				&dataset->head, true, db, owner, he == NULL);
 
+	      pthread_rwlock_unlock (&db->lock);
+
 	      /* Mark the old entry as obsolete.  */
 	      if (dh != NULL)
 		dh->usable = false;
@@ -402,6 +404,8 @@ cache_addhst (struct database_dyn *db, int fd, request_header *req,
 
 	  (void) cache_add (req->type, key_copy, req->key_len,
 			    &dataset->head, true, db, owner, he == NULL);
+
+	  pthread_rwlock_unlock (&db->lock);
 	}
     }
 
diff --git a/nscd/initgrcache.c b/nscd/initgrcache.c
index f8d4742..c33aaf3 100644
--- a/nscd/initgrcache.c
+++ b/nscd/initgrcache.c
@@ -230,6 +230,8 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
 	      (void) cache_add (req->type, key_copy, req->key_len,
 				&dataset->head, true, db, uid, he == NULL);
 
+	      pthread_rwlock_unlock (&db->lock);
+
 	      /* Mark the old entry as obsolete.  */
 	      if (dh != NULL)
 		dh->usable = false;
@@ -386,6 +388,8 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
 
 	  (void) cache_add (INITGROUPS, cp, req->key_len, &dataset->head, true,
 			    db, uid, he == NULL);
+
+	  pthread_rwlock_unlock (&db->lock);
 	}
     }
 
diff --git a/nscd/mem.c b/nscd/mem.c
index 80ea951..fcea6db 100644
--- a/nscd/mem.c
+++ b/nscd/mem.c
@@ -566,6 +566,9 @@ mempool_alloc (struct database_dyn *db, size_t len, int data_alloc)
 	    }
 	}
 
+      if (data_alloc)
+	pthread_rwlock_unlock (&db->lock);
+
       if (! db->last_alloc_failed)
 	{
 	  dbg_log (_("no more memory for database '%s'"), dbnames[db - dbs]);
@@ -588,8 +591,5 @@ mempool_alloc (struct database_dyn *db, size_t len, int data_alloc)
 
   pthread_mutex_unlock (&db->memlock);
 
-  if (data_alloc)
-    pthread_rwlock_unlock (&db->lock);
-
   return res;
 }
diff --git a/nscd/pwdcache.c b/nscd/pwdcache.c
index fc5b44e..2338e7e 100644
--- a/nscd/pwdcache.c
+++ b/nscd/pwdcache.c
@@ -153,6 +153,8 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
 	      (void) cache_add (req->type, key_copy, req->key_len,
 				&dataset->head, true, db, owner, he == NULL);
 
+	      pthread_rwlock_unlock (&db->lock);
+
 	      /* Mark the old entry as obsolete.  */
 	      if (dh != NULL)
 		dh->usable = false;
@@ -360,10 +362,12 @@ cache_addpw (struct database_dyn *db, int fd, request_header *req,
 		(void) cache_add (GETPWBYUID, cp, key_offset, &dataset->head,
 				  false, db, owner, false);
 	    }
+
+	out:
+	  pthread_rwlock_unlock (&db->lock);
 	}
     }
 
-out:
   if (__builtin_expect (written != total, 0) && debug_level > 0)
     {
       char buf[256];
diff --git a/nscd/servicescache.c b/nscd/servicescache.c
index c965c97..dc98d30 100644
--- a/nscd/servicescache.c
+++ b/nscd/servicescache.c
@@ -136,6 +136,8 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
 	      (void) cache_add (req->type, &dataset->strdata, req->key_len,
 				&dataset->head, true, db, owner, he == NULL);
 
+	      pthread_rwlock_unlock (&db->lock);
+
 	      /* Mark the old entry as obsolete.  */
 	      if (dh != NULL)
 		dh->usable = false;
@@ -315,6 +317,8 @@ cache_addserv (struct database_dyn *db, int fd, request_header *req,
 
 	  (void) cache_add (req->type, key_copy, req->key_len,
 			    &dataset->head, true, db, owner, he == NULL);
+
+	  pthread_rwlock_unlock (&db->lock);
 	}
     }
 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog            |   11 -----------
 nscd/aicache.c       |    2 ++
 nscd/grpcache.c      |    6 +++++-
 nscd/hstcache.c      |    4 ++++
 nscd/initgrcache.c   |    4 ++++
 nscd/mem.c           |    6 +++---
 nscd/pwdcache.c      |    6 +++++-
 nscd/servicescache.c |    4 ++++
 8 files changed, 27 insertions(+), 16 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]