First try would be to disable SELinux to confirm your hypothesis.
However even if you fix the selinux problem i do not think this will
work, you need to have a swap partition for hibernate / resume to work,
the systemd-hibernate-resume man page makes reference to needing a
specific device node.
It worked after I did `setenforce 0`, so SELinux is the
problem. I have
my swap file inside its own BTRFS subvolume mounted at /swap and the
SELinux context for that directory is system_u:object_r:unlabeled_t:s0.
It looks like I need to allow systemd-sleep to search that directory. I
think the proper way to do that is to create a new type, label /swap
with that type, and add a policy rule that allows systemd_sleep_t to
search that type. I don't know enough about SELinux to do that though.
Thanks,
Alex