diff --git a/kernel/pid.c b/kernel/pid.c
index de1cfc4f75a2eb8df16e3d1018122226a1a30f14..cdf63e53a01425182d66f1c8883a249cedbaaa88 100644
--- a/kernel/pid.c
+++ b/kernel/pid.c
@@ -195,7 +195,7 @@ struct pid *alloc_pid(struct pid_namespace *ns)
 		idr_preload_end();
 
 		if (nr < 0) {
-			retval = nr;
+			retval = (nr == -ENOSPC) ? -EAGAIN : nr;
 			goto out_free;
 		}