diff --git a/arch/um/os-Linux/aio.c b/arch/um/os-Linux/aio.c
index e942beb4e1085d4265028673c43fbe4c8ffcd277..298d5632128b8119d06f90c1639a559b0168d20e 100644
--- a/arch/um/os-Linux/aio.c
+++ b/arch/um/os-Linux/aio.c
@@ -117,6 +117,8 @@ static int do_aio(aio_context_t ctx, struct aio_context *aio)
         err = io_submit(ctx, 1, &iocbp);
         if(err > 0)
                 err = 0;
+	else
+		err = -errno;
 
  out:
         return err;