From 77903f08601806368d12eb91290ff42799eb8a8e Mon Sep 17 00:00:00 2001 From: Zardosht Kasheff Date: Fri, 4 Oct 2013 11:34:49 -0400 Subject: [PATCH] refs #61, fix locking bug, add write list lock before reintegrating PAIRs into the cachetable on a open --- ft/cachetable.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ft/cachetable.cc b/ft/cachetable.cc index 1f6ca8d0d9f..a19fa14c5db 100644 --- a/ft/cachetable.cc +++ b/ft/cachetable.cc @@ -428,11 +428,13 @@ int toku_cachetable_openfd_with_filenum (CACHEFILE *cfptr, CACHETABLE ct, int fd bjm_init(&existing_cf->bjm); // now we need to move all the PAIRs in it back into the cachetable + ct->list.write_list_lock(); for (PAIR curr_pair = existing_cf->cf_head; curr_pair; curr_pair = curr_pair->cf_next) { pair_lock(curr_pair); ct->list.add_to_cachetable_only(curr_pair); pair_unlock(curr_pair); } + ct->list.write_list_unlock(); // move the cachefile back to the list of active cachefiles ct->cf_list.remove_stale_cf_unlocked(existing_cf); ct->cf_list.add_cf_unlocked(existing_cf);