btrfs: fix crash when tracepoint arguments are freed by wq callbacks
authorDavid Sterba <dsterba@suse.com>
Fri, 6 Jan 2017 13:12:51 +0000 (14:12 +0100)
committerDavid Sterba <dsterba@suse.com>
Mon, 9 Jan 2017 10:24:50 +0000 (11:24 +0100)
commitac0c7cf8be00f269f82964cf7b144ca3edc5dbc4
treeec90457b5fe8979eeb3f3d63cc6131ed53b1f735
parent2939e1a86f758b55cdba73e29397dd3d94df13bc
btrfs: fix crash when tracepoint arguments are freed by wq callbacks

Enabling btrfs tracepoints leads to instant crash, as reported. The wq
callbacks could free the memory and the tracepoints started to
dereference the members to get to fs_info.

The proposed fix https://marc.info/?l=linux-btrfs&m=148172436722606&w=2
removed the tracepoints but we could preserve them by passing only the
required data in a safe way.

Fixes: bc074524e123 ("btrfs: prefix fsid to all trace events")
CC: stable@vger.kernel.org # 4.8+
Reported-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Reviewed-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/async-thread.c
include/trace/events/btrfs.h