cgroup: freezer action must be NOP when cgroup v2 freezer is not available

Low-level cgroup freezer state manipulation is invoked directly from the
job engine when we are about to execute the job in order to make sure
the unit is not frozen and job execution is not blocked because of
that.

Currently with cgroup v1 we would needlessly do a bunch of work in the
function and even falsely update the freezer state. Don't do any of this
and skip the function silently when v2 freezer is not available.

Following bug is fixed by this commit,

$ systemd-run --unit foo.service /bin/sleep infinity
$ systemctl restart foo.service
$ systemctl show -p FreezerState foo.service

Before (cgroup v1, i.e. full "legacy" mode):
FreezerState=thawing

After:
FreezerState=running

(cherry picked from commit 9a1e90aee556b7a30d87553a891a4175ae77ed68)

Resolves: #1868831
1 file changed
tree: 51e98bb04699ca1172de6d20eff614382cdecc06
  1. .dir-locals.el
  2. .editorconfig
  3. .gitattributes
  4. .github/
  5. .gitignore
  6. .lgtm.yml
  7. .lgtm/cpp-queries/
  8. .mailmap
  9. .mkosi/
  10. .travis.yml
  11. .vimrc
  12. .ycm_extra_conf.py
  13. LICENSE.GPL2
  14. LICENSE.LGPL2.1
  15. Makefile
  16. NEWS
  17. README
  18. README.md
  19. TODO
  20. catalog/
  21. ci/
  22. coccinelle/
  23. configure
  24. doc/
  25. factory/etc/
  26. hwdb/
  27. man/
  28. meson.build
  29. meson_options.txt
  30. mkosi.build
  31. modprobe.d/
  32. network/
  33. po/
  34. presets/
  35. rules/
  36. shell-completion/
  37. src/
  38. sysctl.d/
  39. sysusers.d/
  40. test/
  41. tmpfiles.d/
  42. tools/
  43. travis-ci/
  44. units/
  45. xorg/
  46. zanata.xml
README.md

systemd - System and Service Manager

Build Status
Coverity Scan Status
CII Best Practices
Build Status

Details

General information about systemd can be found in the systemd Wiki.

Information about build requirements are provided in the README file.

Consult our NEWS file for information about what's new in the most recent systemd versions.

Please see the HACKING file for information how to hack on systemd and test your modifications.

Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.

When preparing patches for systemd, please follow our Coding Style Guidelines.

If you are looking for support, please contact our mailing list or join our IRC channel.

Stable branches with backported patches are available in the stable repo.