diff options
Diffstat (limited to 'ipc/sem.c')
| -rw-r--r-- | ipc/sem.c | 7 | 
1 files changed, 7 insertions, 0 deletions
diff --git a/ipc/sem.c b/ipc/sem.c index 899b598b63b..04b264dbf14 100644 --- a/ipc/sem.c +++ b/ipc/sem.c @@ -815,6 +815,13 @@ static int count_semzcnt (struct sem_array * sma, ushort semnum)  	struct sem_queue * q;  	semzcnt = 0; +	list_for_each_entry(q, &sma->sem_base[semnum].sem_pending, list) { +		struct sembuf * sops = q->sops; +		BUG_ON(sops->sem_num != semnum); +		if ((sops->sem_op == 0) && !(sops->sem_flg & IPC_NOWAIT)) +			semzcnt++; +	} +  	list_for_each_entry(q, &sma->sem_pending, list) {  		struct sembuf * sops = q->sops;  		int nsops = q->nsops;  |