From d0a3129b8809b9f049dd0a0f8e7921d79cddc104 Mon Sep 17 00:00:00 2001 From: Jason Evans Date: Fri, 6 Jan 2017 18:57:18 -0800 Subject: [PATCH] Fix locking in arena_dirty_count(). This was a latent bug, since the function is (intentionally) not used. --- src/arena.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/arena.c b/src/arena.c index ec8d4790..3c31cc87 100644 --- a/src/arena.c +++ b/src/arena.c @@ -639,12 +639,14 @@ arena_dirty_count(tsdn_t *tsdn, arena_t *arena) extent_t *extent; size_t ndirty = 0; - malloc_mutex_assert_owner(tsdn, &arena->extents_mtx); + malloc_mutex_lock(tsdn, &arena->extents_mtx); for (extent = qr_next(&arena->extents_dirty, qr_link); extent != &arena->extents_dirty; extent = qr_next(extent, qr_link)) ndirty += extent_size_get(extent) >> LG_PAGE; + malloc_mutex_unlock(tsdn, &arena->extents_mtx); + return (ndirty); }