From 59a96564f1779c50c83dee580f975abd20318535 Mon Sep 17 00:00:00 2001 From: André Fabian Silva Delgado Date: Sat, 6 Feb 2016 13:54:04 -0300 Subject: linux-libre-rt-4.4.1_gnu.rt5-1: updating version --- kernels/linux-libre-rt/0001-4.4-revert-btrfs.patch | 78 ++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 kernels/linux-libre-rt/0001-4.4-revert-btrfs.patch (limited to 'kernels/linux-libre-rt/0001-4.4-revert-btrfs.patch') diff --git a/kernels/linux-libre-rt/0001-4.4-revert-btrfs.patch b/kernels/linux-libre-rt/0001-4.4-revert-btrfs.patch new file mode 100644 index 000000000..4b56e242e --- /dev/null +++ b/kernels/linux-libre-rt/0001-4.4-revert-btrfs.patch @@ -0,0 +1,78 @@ +From 80ad623edd2d0ccb47d85357ee31c97e6c684e82 Mon Sep 17 00:00:00 2001 +From: David Sterba +Date: Mon, 25 Jan 2016 11:02:06 +0100 +Subject: Revert "btrfs: clear PF_NOFREEZE in cleaner_kthread()" + +This reverts commit 696249132158014d594896df3a81390616069c5c. The +cleaner thread can block freezing when there's a snapshot cleaning in +progress and the other threads get suspended first. From the logs +provided by Martin we're waiting for reading extent pages: + +kernel: PM: Syncing filesystems ... done. +kernel: Freezing user space processes ... (elapsed 0.015 seconds) done. +kernel: Freezing remaining freezable tasks ... +kernel: Freezing of tasks failed after 20.003 seconds (1 tasks refusing to freeze, wq_busy=0): +kernel: btrfs-cleaner D ffff88033dd13bc0 0 152 2 0x00000000 +kernel: ffff88032ebc2e00 ffff88032e750000 ffff88032e74fa50 7fffffffffffffff +kernel: ffffffff814a58df 0000000000000002 ffffea000934d580 ffffffff814a5451 +kernel: 7fffffffffffffff ffffffff814a6e8f 0000000000000000 0000000000000020 +kernel: Call Trace: +kernel: [] ? bit_wait+0x2c/0x2c +kernel: [] ? schedule+0x6f/0x7c +kernel: [] ? schedule_timeout+0x2f/0xd8 +kernel: [] ? timekeeping_get_ns+0xa/0x2e +kernel: [] ? ktime_get+0x36/0x44 +kernel: [] ? io_schedule_timeout+0x94/0xf2 +kernel: [] ? io_schedule_timeout+0x94/0xf2 +kernel: [] ? bit_wait_io+0x2c/0x30 +kernel: [] ? __wait_on_bit+0x41/0x73 +kernel: [] ? wait_on_page_bit+0x6d/0x72 +kernel: [] ? autoremove_wake_function+0x2a/0x2a +kernel: [] ? read_extent_buffer_pages+0x1bd/0x203 +kernel: [] ? free_root_pointers+0x4c/0x4c +kernel: [] ? btree_read_extent_buffer_pages.constprop.57+0x5a/0xe9 +kernel: [] ? read_tree_block+0x2d/0x45 +kernel: [] ? read_block_for_search.isra.34+0x22a/0x26b +kernel: [] ? btrfs_set_path_blocking+0x1e/0x4a +kernel: [] ? btrfs_search_slot+0x648/0x736 +kernel: [] ? btrfs_lookup_extent_info+0xb7/0x2c7 +kernel: [] ? walk_down_proc+0x9c/0x1ae +kernel: [] ? walk_down_tree+0x40/0xa4 +kernel: [] ? btrfs_drop_snapshot+0x2da/0x664 +kernel: [] ? finish_task_switch+0x126/0x167 +kernel: [] ? btrfs_clean_one_deleted_snapshot+0xa6/0xb0 +kernel: [] ? cleaner_kthread+0x13e/0x17b +kernel: [] ? btrfs_item_end+0x33/0x33 +kernel: [] ? kthread+0x95/0x9d +kernel: [] ? kthread_parkme+0x16/0x16 +kernel: [] ? ret_from_fork+0x3f/0x70 +kernel: [] ? kthread_parkme+0x16/0x16 + +As this affects a released kernel (4.4) we need a minimal fix for +stable kernels. + +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=108361 +Reported-by: Martin Ziegler +CC: stable@vger.kernel.org # 4.4 +CC: Jiri Kosina +Signed-off-by: David Sterba +Signed-off-by: Chris Mason +--- + fs/btrfs/disk-io.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c +index 26ef141..404e894 100644 +--- a/fs/btrfs/disk-io.c ++++ b/fs/btrfs/disk-io.c +@@ -1787,7 +1787,6 @@ static int cleaner_kthread(void *arg) + int again; + struct btrfs_trans_handle *trans; + +- set_freezable(); + do { + again = 0; + +-- +cgit v0.12 + -- cgit v1.2.3