|
@@ -815,6 +815,13 @@ static int count_semzcnt (struct sem_array * sma, ushort semnum)
|
|
struct sem_queue * q;
|
|
struct sem_queue * q;
|
|
|
|
|
|
semzcnt = 0;
|
|
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) {
|
|
list_for_each_entry(q, &sma->sem_pending, list) {
|
|
struct sembuf * sops = q->sops;
|
|
struct sembuf * sops = q->sops;
|
|
int nsops = q->nsops;
|
|
int nsops = q->nsops;
|