overhaul sem_open
authorRich Felker <dalias@aerifal.cx>
Sun, 30 Sep 2012 23:35:40 +0000 (19:35 -0400)
committerRich Felker <dalias@aerifal.cx>
Sun, 30 Sep 2012 23:35:40 +0000 (19:35 -0400)
commitbf258341b71711461ce19891674d43c135827d0e
tree29b3526a1039a2b5cce1eb73a67a99a2f6fcf0cd
parent6e2372a86c7e862ed931910f8a5f4b908639d689
overhaul sem_open

this function was overly complicated and not even obviously correct.
avoid using openat/linkat just like in shm_open, and instead expand
pathname using code shared with shm_open. remove bogus (and dangerous,
with priorities) use of spinlocks.

this commit also heavily streamlines the code and ensures there are no
failure cases that can happen after a new semaphore has been created
in the filesystem, since that case is unreportable.
src/mman/shm_open.c
src/thread/sem_open.c