diff options
-rw-r--r-- | ipc/sem.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -1047,6 +1047,16 @@ static int count_semzcnt(struct sem_array *sma, ushort semnum) | |||
1047 | && !(sops[i].sem_flg & IPC_NOWAIT)) | 1047 | && !(sops[i].sem_flg & IPC_NOWAIT)) |
1048 | semzcnt++; | 1048 | semzcnt++; |
1049 | } | 1049 | } |
1050 | list_for_each_entry(q, &sma->pending_alter, list) { | ||
1051 | struct sembuf *sops = q->sops; | ||
1052 | int nsops = q->nsops; | ||
1053 | int i; | ||
1054 | for (i = 0; i < nsops; i++) | ||
1055 | if (sops[i].sem_num == semnum | ||
1056 | && (sops[i].sem_op == 0) | ||
1057 | && !(sops[i].sem_flg & IPC_NOWAIT)) | ||
1058 | semzcnt++; | ||
1059 | } | ||
1050 | return semzcnt; | 1060 | return semzcnt; |
1051 | } | 1061 | } |
1052 | 1062 | ||