Liu Bo
2932505abe
Btrfs: fix use-after-free bug during umount
...
Commit be283b2e674a09457d4563729015adb637ce7cc1
( Btrfs: use helper to cleanup tree roots) introduced the following bug,
BUG: unable to handle kernel NULL pointer dereference at 0000000000000034
IP: [<ffffffffa039368c>] extent_buffer_get+0x4/0xa [btrfs]
[...]
Pid: 2463, comm: btrfs-cache-1 Tainted: G O 3.9.0+ #4 innotek GmbH VirtualBox/VirtualBox
RIP: 0010:[<ffffffffa039368c>] [<ffffffffa039368c>] extent_buffer_get+0x4/0xa [btrfs]
Process btrfs-cache-1 (pid: 2463, threadinfo ffff880112d60000, task ffff880117679730)
[...]
Call Trace:
[<ffffffffa0398a99>] btrfs_search_slot+0x104/0x64d [btrfs]
[<ffffffffa039aea4>] btrfs_next_old_leaf+0xa7/0x334 [btrfs]
[<ffffffffa039b141>] btrfs_next_leaf+0x10/0x12 [btrfs]
[<ffffffffa039ea13>] caching_thread+0x1a3/0x2e0 [btrfs]
[<ffffffffa03d8811>] worker_loop+0x14b/0x48e [btrfs]
[<ffffffffa03d86c6>] ? btrfs_queue_worker+0x25c/0x25c [btrfs]
[<ffffffff81068d3d>] kthread+0x8d/0x95
[<ffffffff81068cb0>] ? kthread_freezable_should_stop+0x43/0x43
[<ffffffff8151e5ac>] ret_from_fork+0x7c/0xb0
[<ffffffff81068cb0>] ? kthread_freezable_should_stop+0x43/0x43
RIP [<ffffffffa039368c>] extent_buffer_get+0x4/0xa [btrfs]
We've free'ed commit_root before actually getting to free block groups where
caching thread needs valid extent_root->commit_root.
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
2013-06-08 15:10:01 -04:00
..
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-06-08 15:10:01 -04:00
2012-12-20 22:34:00 +00:00
2013-03-03 19:36:31 -08:00
2013-04-10 15:54:14 -05:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-07 01:08:55 -08:00
2013-02-27 19:10:24 -08:00
2013-04-09 14:08:16 -04:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-02-27 19:10:24 -08:00
2013-03-13 15:23:44 +01:00
2013-03-11 22:05:56 +01:00
2013-04-03 12:37:17 -04:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-12 18:55:21 -07:00
2013-02-27 19:10:24 -08:00
2013-03-03 19:36:31 -08:00
2013-04-05 17:55:13 +01:00
2013-03-03 19:36:31 -08:00
2013-04-17 16:10:45 -07:00
2013-03-13 15:47:50 -07:00
2013-03-11 07:09:48 -07:00
2013-03-03 19:36:31 -08:00
2013-04-17 16:10:44 -07:00
2013-03-12 18:55:21 -07:00
2013-01-14 22:50:45 +01:00
2013-03-11 13:24:56 -04:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-02-28 18:02:55 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-04-10 10:26:49 -07:00
2013-02-13 06:15:14 -08:00
2013-03-26 16:18:27 -04:00
2013-03-03 19:36:31 -08:00
2013-02-27 19:10:24 -08:00
2013-03-03 19:36:31 -08:00
2013-03-07 01:08:55 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-04-12 14:18:43 +02:00
2013-02-21 09:38:18 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-11 22:05:56 +01:00
2013-02-26 20:16:07 -08:00
2013-03-29 17:08:43 +01:00
2013-03-03 19:36:31 -08:00
2013-03-11 07:09:48 -07:00
2013-03-28 15:52:14 -07:00
2013-03-12 18:55:21 -07:00
2013-03-14 11:20:22 +02:00
2013-03-11 07:09:48 -07:00
2013-03-03 19:36:31 -08:00
2013-03-19 15:17:40 -07:00
2013-04-26 07:56:18 -07:00
2013-02-26 02:46:11 -05:00
2012-11-20 04:17:24 -08:00
2012-12-17 17:15:12 -08:00
2013-02-22 23:31:31 -05:00
2013-02-26 20:16:07 -08:00
2013-04-17 16:10:44 -07:00
2012-12-17 17:15:23 -08:00
2013-02-22 23:31:31 -05:00
2013-03-03 19:36:31 -08:00
2012-12-20 17:40:19 -08:00
2012-11-28 21:53:38 -05:00
2013-04-18 09:00:26 -07:00
2013-04-01 15:48:47 -07:00
2013-02-28 12:52:24 -08:00
2012-10-22 08:50:37 +03:00
2012-10-06 03:05:17 +09:00
2013-02-22 23:31:31 -05:00
2013-03-12 11:05:45 -07:00
2013-02-27 19:10:11 -08:00
2012-10-06 03:05:15 +09:00
2013-03-26 18:25:57 -04:00
2013-02-22 23:31:36 -05:00
2012-12-17 17:15:27 -08:00
2013-01-02 09:16:43 -08:00
2013-02-27 19:10:11 -08:00
2013-02-22 23:31:31 -05:00
2012-12-20 14:04:11 -08:00
2013-03-01 19:48:30 -05:00
2013-02-19 08:42:45 +01:00
2013-03-03 19:36:31 -08:00
2013-03-01 23:51:07 -05:00
2013-02-28 13:21:44 -08:00
2013-04-13 16:13:55 -07:00
2013-03-21 13:11:11 -04:00
2013-02-22 23:31:31 -05:00
2013-01-17 13:08:45 +01:00
2012-10-06 03:05:15 +09:00
2012-12-20 18:46:29 -05:00
2013-02-22 23:31:31 -05:00
2012-12-11 13:43:42 +09:00
2012-11-20 04:19:49 -08:00
2013-03-08 09:03:07 -08:00
2013-04-09 12:22:49 -07:00
2013-03-03 13:23:03 -08:00
2013-03-12 08:29:17 -07:00
2013-03-27 07:50:05 -07:00
2013-03-27 07:50:05 -07:00
2013-03-27 09:24:02 -07:00
2012-10-02 21:35:55 -04:00
2013-02-22 23:31:31 -05:00
2013-02-07 20:51:08 +01:00
2013-03-03 13:23:03 -08:00
2012-12-17 17:15:27 -08:00
2013-03-21 13:11:11 -04:00
2013-02-26 02:46:08 -05:00
2012-12-20 18:50:07 -05:00
2013-02-27 19:10:24 -08:00
2013-02-22 23:31:31 -05:00
2013-03-02 09:35:13 -05:00
2012-12-20 18:50:08 -05:00
2012-10-12 13:16:48 -07:00
2012-12-20 18:50:11 -05:00