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