btrfs-progs/convert
Adam Buchbinder 1639cc2a51 btrfs-progs: convert: Fix data race when reporting progress
The status display was reading the state while the task was updating
it. Use a mutex to prevent the race.

This race was detected using ThreadSanitizer and
misc-tests/005-convert-progress-thread-crash.

==================
WARNING: ThreadSanitizer: data race
  Write of size 8 by main thread:
    #0 ext2_copy_inodes btrfs-progs/convert/source-ext2.c:853
    #1 copy_inodes btrfs-progs/convert/main.c:145
    #2 do_convert btrfs-progs/convert/main.c:1297
    #3 main btrfs-progs/convert/main.c:1924

  Previous read of size 8 by thread T1:
    #0 print_copied_inodes btrfs-progs/convert/main.c:124

  Location is stack of main thread.

  Thread T1 (running) created by main thread at:
    #0 pthread_create <null>
    #1 task_start btrfs-progs/task-utils.c:50
    #2 do_convert btrfs-progs/convert/main.c:1295
    #3 main btrfs-progs/convert/main.c:1924

SUMMARY: ThreadSanitizer: data race
btrfs-progs/convert/source-ext2.c:853 in ext2_copy_inodes

Signed-off-by: Adam Buchbinder <abuchbinder@google.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2017-07-20 17:43:43 +02:00
..
common.c btrfs-progs: Remove deprecated leafsize usage 2017-07-03 13:35:10 +02:00
common.h btrfs-progs: convert: widen int types in convert context 2017-06-26 17:09:53 +02:00
main.c btrfs-progs: convert: Fix data race when reporting progress 2017-07-20 17:43:43 +02:00
Makefile btrfs-progs: build: add stub makefile to convert 2017-03-08 13:00:46 +01:00
source-ext2.c btrfs-progs: convert: Fix data race when reporting progress 2017-07-20 17:43:43 +02:00
source-ext2.h btrfs-progs: convert: move ext2 definitions out of main 2017-03-08 13:00:45 +01:00
source-fs.c btrfs-progs: Refactor sectorsize in convert/source-fs.c 2017-07-03 13:35:10 +02:00
source-fs.h btrfs-progs: convert: Fix data race when reporting progress 2017-07-20 17:43:43 +02:00