Commits


9pserve: delete from correct hash slot (fix infinite loop)


venti: seal arenas without bypassing dcache


venti: allow partition syntax in verifyarena (Michael Kaminsky)


venti: avoid race in mirrorarenas (Michael Kaminsky)


venti: add -s flag to disable redundant SHA1 in mirrorarenas


merge


9.rc: change to work with rc -e (Tony Lainson) Change sense of test at end of 9.rc so that when invoked with no arguments the test still evaluates true, so that it works well with rc -e.


mailfs: fix handling of FLAGS response (Robert Vollmert)


libthread: simplify alt tracking, possibly fixing bug


acme: fix memory leak in warning (Michael Teichgräber)


fully qualify host name


add Linux x86-64 (thanks to Ævar Arnfjörð Bjarmason)


9pserve: fix a new race involving assert(c->nmsg == 0). Just like outputthread can have processed the message but not yet called msgput, the same is true of the connoutthread, so we cannot check c->nmsg until after the connoutthread has shut down gracefully.


merge


9pserve: fix races causing assert(c->nmsg == 0) to fail. 1. Could happen that connoutthread sends c->outq a nil just before the regular input handler sends c->outq a real message. When the connoutthread gets the nil it will free c->outq, leaving the real message unprocessed. 2. Could happen that the outputthread writes a message body to the remote 9P server and then a response comes in and then the connection gets torn down, all before the outputthread manages to call msgput(m). Thanks to David Swasey for identifying this scenario. Also change yield() loop into explicit communication. Also remove dead code involving hungup queues.