fork of 9front i guess
Find a file
cinap_lenrek 2f732e9a85 kernel: attachimage / exec error handling
attachimage()'s approach to handling newseg() error is flawed:

a) the the image is on the hash table, but ref is still 0, and
there is no segment/pages attached to it so nobody is going to
reclaim / putimage() it -> leak

b) calling pexit() would deadlock us because exec has acquired
up->seglock when calling attachimage(), so this would just deadlock.

the fix does the following:

attachimage() will putimage() and nexterror() if newseg() fails
instead of pexit(). this is less surprising.

exec now keeps the condition variable commit which is set once
we are commited / reached the point of no return and check this
variable in the highest waserror() handler and pexit() us there.

this way we have released up all the locks and pexit() will
cleanup.

note: this bug shouldnt us hit in with the current newseg()
implementation as it uses smalloc() which would wait to
satisfy the allocation instead of erroring.
2012-10-14 19:48:46 +02:00
386 remove .dummy files and replace it by sys/lib/rootstub script 2011-05-03 04:42:16 +00:00
68000 remove .dummy files and replace it by sys/lib/rootstub script 2011-05-03 04:42:16 +00:00
68020 remove .dummy files and replace it by sys/lib/rootstub script 2011-05-03 04:42:16 +00:00
acme fix permission for /acme/mkfile 2011-06-07 23:32:57 +00:00
adm/timezone remove file committed in error 2011-09-19 22:59:44 -05:00
alpha remove .dummy files and replace it by sys/lib/rootstub script 2011-05-03 04:42:16 +00:00
amd64 6c: extern register fix (import from patch/6c-extreg) 2012-09-18 18:18:43 +02:00
arm remove .dummy files and replace it by sys/lib/rootstub script 2011-05-03 04:42:16 +00:00
lib content-driven bullshit 2012-10-08 01:57:52 +02:00
mips remove .dummy files and replace it by sys/lib/rootstub script 2011-05-03 04:42:16 +00:00
power remove .dummy files and replace it by sys/lib/rootstub script 2011-05-03 04:42:16 +00:00
power64 remove .dummy files and replace it by sys/lib/rootstub script 2011-05-03 04:42:16 +00:00
rc formpost becomes hpost 2012-10-14 06:28:58 +02:00
sparc remove .dummy files and replace it by sys/lib/rootstub script 2011-05-03 04:42:16 +00:00
sparc64 remove .dummy files and replace it by sys/lib/rootstub script 2011-05-03 04:42:16 +00:00
sys kernel: attachimage / exec error handling 2012-10-14 19:48:46 +02:00
.hgignore hgignore: ignore more stuff 2012-07-03 03:48:57 +02:00