swapon() succeeds unless:
[ENOTDIR]
A component of the path prefix is not a directory.
[ENAMETOOLONG]
A component of a pathname exceeded {NAME_MAX} characters, or an entire path name exceeded {PATH_MAX} characters.
[ENOENT]
The named device does not exist.
[EACCES]
Search permission is denied for a component of the path prefix.
[ELOOP]
Too many symbolic links were encountered in translating the pathname.
[EPERM]
The caller is not the super-user.
[ENOTBLK]
special is not a block device.
[EBUSY]
The device specified by special has already been made available for swapping
[EINVAL]
The device configured by special was not configured into the system as a swap device.
[ENXIO]
The major device number of special is out of range (this indicates no device driver exists for the associated hardware).
[EIO]
An I/O error occurred while opening the swap device.
[EFAULT]
special points outside the process's allocated address space.