include/linux/sem.h: correctly document sem_ctime

sem_ctime is initialized to the semget() time and then updated at every
semctl() that changes the array.

Thus it does not represent the time of the last change.

Especially, semop() calls are only stored in sem_otime, not in
sem_ctime.

This is already described in ipc/sem.c, I just overlooked that there is
a comment in include/linux/sem.h and man semctl(2) as well.

So: Correct wrong comments.

Link: http://lkml.kernel.org/r/20170515171912.6298-4-manfred@colorfullife.com
Signed-off-by: Manfred Spraul <manfred@colorfullife.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: <1vier1@web.de>
Cc: Davidlohr Bueso <dave@stgolabs.net>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Manfred Spraul 2017-07-12 14:34:44 -07:00 committed by Linus Torvalds
parent dba4cdd39e
commit 2cd648c110
2 changed files with 2 additions and 2 deletions

View File

@ -30,7 +30,7 @@ struct sem {
/* One sem_array data structure for each set of semaphores in the system. */ /* One sem_array data structure for each set of semaphores in the system. */
struct sem_array { struct sem_array {
struct kern_ipc_perm sem_perm; /* permissions .. see ipc.h */ struct kern_ipc_perm sem_perm; /* permissions .. see ipc.h */
time_t sem_ctime; /* last change time */ time_t sem_ctime; /* create/last semctl() time */
struct list_head pending_alter; /* pending operations */ struct list_head pending_alter; /* pending operations */
/* that alter the array */ /* that alter the array */
struct list_head pending_const; /* pending complex operations */ struct list_head pending_const; /* pending complex operations */

View File

@ -23,7 +23,7 @@
struct semid_ds { struct semid_ds {
struct ipc_perm sem_perm; /* permissions .. see ipc.h */ struct ipc_perm sem_perm; /* permissions .. see ipc.h */
__kernel_time_t sem_otime; /* last semop time */ __kernel_time_t sem_otime; /* last semop time */
__kernel_time_t sem_ctime; /* last change time */ __kernel_time_t sem_ctime; /* create/last semctl() time */
struct sem *sem_base; /* ptr to first semaphore in array */ struct sem *sem_base; /* ptr to first semaphore in array */
struct sem_queue *sem_pending; /* pending operations to be processed */ struct sem_queue *sem_pending; /* pending operations to be processed */
struct sem_queue **sem_pending_last; /* last pending operation */ struct sem_queue **sem_pending_last; /* last pending operation */