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. Thanks, -- Jiri Kosina SUSE Labs