diff options
| author | Anton Altaparmakov <aia21@cantab.net> | 2006-01-03 07:51:07 -0500 |
|---|---|---|
| committer | Anton Altaparmakov <aia21@cantab.net> | 2006-01-03 07:51:07 -0500 |
| commit | d087e4bdd24ebe3ae3d0b265b6573ec901af4b4b (patch) | |
| tree | c2db1b4958bbf617a25398b7ef93d82006b26a17 /ipc/sem.c | |
| parent | 292d4ed32e35df4755052b5002e533348d1648fd (diff) | |
| parent | 88026842b0a760145aa71d69e74fbc9ec118ca44 (diff) | |
Merge branch 'master' of /usr/src/ntfs-2.6/
Diffstat (limited to 'ipc/sem.c')
| -rw-r--r-- | ipc/sem.c | 2 |
1 files changed, 2 insertions, 0 deletions
| @@ -381,6 +381,7 @@ static void update_queue (struct sem_array * sma) | |||
| 381 | /* hands-off: q will disappear immediately after | 381 | /* hands-off: q will disappear immediately after |
| 382 | * writing q->status. | 382 | * writing q->status. |
| 383 | */ | 383 | */ |
| 384 | smp_wmb(); | ||
| 384 | q->status = error; | 385 | q->status = error; |
| 385 | q = n; | 386 | q = n; |
| 386 | } else { | 387 | } else { |
| @@ -461,6 +462,7 @@ static void freeary (struct sem_array *sma, int id) | |||
| 461 | n = q->next; | 462 | n = q->next; |
| 462 | q->status = IN_WAKEUP; | 463 | q->status = IN_WAKEUP; |
| 463 | wake_up_process(q->sleeper); /* doesn't sleep */ | 464 | wake_up_process(q->sleeper); /* doesn't sleep */ |
| 465 | smp_wmb(); | ||
| 464 | q->status = -EIDRM; /* hands-off q */ | 466 | q->status = -EIDRM; /* hands-off q */ |
| 465 | q = n; | 467 | q = n; |
| 466 | } | 468 | } |
