diff options
-rw-r--r-- | ipc/sem.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -796,6 +796,13 @@ static int count_semncnt (struct sem_array * sma, ushort semnum) | |||
796 | struct sem_queue * q; | 796 | struct sem_queue * q; |
797 | 797 | ||
798 | semncnt = 0; | 798 | semncnt = 0; |
799 | list_for_each_entry(q, &sma->sem_base[semnum].sem_pending, list) { | ||
800 | struct sembuf * sops = q->sops; | ||
801 | BUG_ON(sops->sem_num != semnum); | ||
802 | if ((sops->sem_op < 0) && !(sops->sem_flg & IPC_NOWAIT)) | ||
803 | semncnt++; | ||
804 | } | ||
805 | |||
799 | list_for_each_entry(q, &sma->sem_pending, list) { | 806 | list_for_each_entry(q, &sma->sem_pending, list) { |
800 | struct sembuf * sops = q->sops; | 807 | struct sembuf * sops = q->sops; |
801 | int nsops = q->nsops; | 808 | int nsops = q->nsops; |