O problema com fallocate(1) é que ele usa o sistema de arquivos ioctls para tornar a alocação rápida e eficaz, a desvantagem é que ela não aloca fisicamente o espaço, mas swapon(2) syscall requer um espaço real.
Referência: link
Eu já havia enfrentado esse problema antes com a minha caixa. Então, em vez de usar fallocate , usei dd como o link sugere
sudo dd if=/dev/zero of=/myswap count=4096 bs=1MiB
e continuando com chmod , mkswap & swapon comandos. Bingo! Funcionou.