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@xxxxxxx>
>> Signed-off-by: David Sterba <dsterba@xxxxxxxx>
>> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
>
>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.