On Fri, Oct 26, 2018 at 08:58:57AM +0200, Jiri Kosina wrote:
On Thu, 25 Oct 2018, Sasha Levin wrote:
cleaner_kthread() is not marked freezable, and therefore calling try_to_freeze() in its context is a pointless no-op.
In addition to that, as has been clearly demonstrated by 80ad623edd2d ("Revert "btrfs: clear PF_NOFREEZE in cleaner_kthread()"), it's perfectly valid / legal for cleaner_kthread() to stay scheduled out in an arbitrary place during suspend (in that particular example that was waiting for reading of extent pages), so there is no need to leave any traces of freezer in this kthread.
Fixes: 80ad623edd2d ("Revert "btrfs: clear PF_NOFREEZE in Fixes: cleaner_kthread()") Fixes: 696249132158 ("btrfs: clear PF_NOFREEZE in cleaner_kthread()") Signed-off-by: Jiri Kosina jkosina@suse.cz Signed-off-by: David Sterba dsterba@suse.com Signed-off-by: Sasha Levin sashal@kernel.org
IIRC it was some preparatory work for livepatching. I did a quick check if this is safe for 4.4 and would say yes, but the patch does not fix anything so IMO this does not need to go to stable.
Doesn't that also affect hibernation and such?
This patch just removes pointless try_to_freeze(), that's guaranteed not to do anything and return immediately, as the btrfs kthread is not freezable. So I don't think it's needed in stable; the semantics is equivalent before and after.
Gotcha. I'll drop it. Thank you!
-- Thanks, Sasha