As discussed on IRC, this is same patch as:

[Openais] [PATCH 1/1] whitetank: Return error if there is no space for 
semaphore


Angus Salkeld napsal(a):
> I noticed this while testing the high FD usage patch.
> It can get stuck in the while loop.
> 
> Signed-off-by: Angus Salkeld <[email protected]>
> ---
>  lib/util.c |    6 ++++++
>  1 files changed, 6 insertions(+), 0 deletions(-)
> 
> diff --git a/lib/util.c b/lib/util.c
> index f285eb5..76b3891 100644
> --- a/lib/util.c
> +++ b/lib/util.c
> @@ -339,6 +339,9 @@ openais_service_connect (
>               shmkey = random();
>               ipc_segment->shmid = shmget (shmkey, sizeof (struct 
> shared_memory),
>                       IPC_CREAT|IPC_EXCL|0600);
> +             if (ipc_segment->semid == -1 && errno == ENOSPC) {
> +                     goto error_exit;
> +             }
>       } while (ipc_segment->shmid == -1);
>  
>       /*
> @@ -347,6 +350,9 @@ openais_service_connect (
>       do {
>               semkey = random();
>               ipc_segment->semid = semget (semkey, 3, 
> IPC_CREAT|IPC_EXCL|0600);
> +             if (ipc_segment->semid == -1 && errno == ENOSPC) {
> +                     goto error_exit;
> +             }
>               ipc_segment->euid = geteuid ();
>       } while (ipc_segment->semid == -1);
>  

_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to