diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-02-04 07:40:19 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-02-04 07:40:19 +0000 |
commit | 33263fc5f9ac8e8cb2b22d06af3ce5ac1dd815e4 (patch) | |
tree | 2d1b86a40bef0958a68cf1a2eafbeb0667a70543 /ipc/sem.c | |
parent | 216f5f51aa02f8b113aa620ebc14a9631a217a00 (diff) |
Merge with Linux 2.3.32.
Diffstat (limited to 'ipc/sem.c')
-rw-r--r-- | ipc/sem.c | 10 |
1 files changed, 3 insertions, 7 deletions
@@ -190,12 +190,7 @@ static int sem_revalidate(int semid, struct semid_ds* sma, int nsems, short flg) smanew = sem_lock(semid); if(smanew==NULL) return -EIDRM; - if(smanew != sma) - goto out_EIDRM; - if(sem_checkid(sma,semid)) - goto out_EIDRM; - if(sma->sem_nsems != nsems) { -out_EIDRM: + if(smanew != sma || sem_checkid(sma,semid) || sma->sem_nsems != nsems) { sem_unlock(semid); return -EIDRM; } @@ -494,6 +489,8 @@ int semctl_main(int semid, int semnum, int cmd, union semun arg) if(sma==NULL) return -EINVAL; + nsems = sma->sem_nsems; + err=-EIDRM; if (sem_checkid(sma,semid)) goto out_unlock; @@ -502,7 +499,6 @@ int semctl_main(int semid, int semnum, int cmd, union semun arg) if (ipcperms (&sma->sem_perm, (cmd==SETVAL||cmd==SETALL)?S_IWUGO:S_IRUGO)) goto out_unlock; - nsems = sma->sem_nsems; switch (cmd) { case GETALL: { |