libdevmapper: propagate kernel ioctl error on _dm_create_device()
Let's not make up synthetic errors if the kernel returns a useful error to us.
Specifically, if we try to actviate a dm-verity device with a signed root hash, it's import to know when we couldn't activate it due to the signing key missing in the kernel keyring. The kernel reports a nice error code in that case (ENOKEY), let's make sure this is propagated back to clients.
This patch is not sufficient to fix this properly. There's a patch needed to fix errno propagation also in libdevmapper:
With both patches applied we get correct error code reporting.