Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

dm vdo indexer-volume: fix missing mutex_lock in process_entry

Must mutex_lock after dm_bufio_read, before dm_bufio_read error
handling, otherwise process_entry error path will return without
volume->read_threads_mutex held. This fixes potential double
mutex_unlock.

Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Susan LeGendre-McGhee <slegendr@redhat.com>
Signed-off-by: Matthew Sakai <msakai@redhat.com>

+1 -1
+1 -1
drivers/md/dm-vdo/volume.c
··· 556 556 557 557 mutex_unlock(&volume->read_threads_mutex); 558 558 page_data = dm_bufio_read(volume->client, page_number, &page->buffer); 559 + mutex_lock(&volume->read_threads_mutex); 559 560 if (IS_ERR(page_data)) { 560 561 result = -PTR_ERR(page_data); 561 562 uds_log_warning_strerror(result, ··· 565 564 cancel_page_in_cache(&volume->page_cache, page_number, page); 566 565 return result; 567 566 } 568 - mutex_lock(&volume->read_threads_mutex); 569 567 570 568 if (entry->invalid) { 571 569 uds_log_warning("Page %u invalidated after read", page_number);