diff options
Diffstat (limited to 'nscd/grpcache.c')
-rw-r--r-- | nscd/grpcache.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/nscd/grpcache.c b/nscd/grpcache.c index fc2008449e..184d53898c 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]; |