commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SCM] the great next stuff branch, dde, updated. 6e1555c9a749b215665619f


From: Samuel Thibault
Subject: [SCM] the great next stuff branch, dde, updated. 6e1555c9a749b215665619f4ec6f0b0d4d0f3fd6
Date: Sun, 29 Nov 2015 12:10:36 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "the great next stuff".

The branch, dde has been updated
       via  6e1555c9a749b215665619f4ec6f0b0d4d0f3fd6 (commit)
       via  87bc93725aea306e8bd4e4171622e4418869fc2f (commit)
       via  226a9d9c34a2d187f978a25874488e5b07986d7c (commit)
       via  c1d5c163a89f53a3c6e4e67f5f4119af96f7a470 (commit)
       via  6c948532d2799bcc172053cac504c4aa5f016bba (commit)
       via  df778cd01505e3a8c11f5b13f5ee26a4be290f9a (commit)
       via  710201a5db7bcd1c13364eccca65d8b13c1d0d65 (commit)
       via  5f7601f47a3fd8957a52c03f1135534fc2232539 (commit)
       via  608ea90065a50b7f8e3a5592c8e8e4cbd0265490 (commit)
       via  a9eb3e9765a21f9903705e2b9f46694529af8155 (commit)
       via  7dd0f755f4ac29e6c10085c16e18dd97d92ae5e7 (commit)
       via  d9a22b92a226419c50fd13013741679ce7e7b624 (commit)
       via  ff578e992a792e4a844a9a800e48ad9cef69e97a (commit)
       via  3f0a9b1145c25d1f0f19fc93da3c272c5505a5ee (commit)
       via  c3c6b55517d7d1e217e88d08f3265a5a7d77565a (commit)
       via  0437af60d3bbf09003f3fd1fdb9993958fcd430d (commit)
       via  d4a2c3958c79b9582b6541585ad2a72aca7a734a (commit)
       via  a6185e280c1e9ca17e9bd24eff169671fe28fb1b (commit)
       via  1fa0cec1b643483918933b5d6a419e77d6e16c6d (commit)
       via  bd7e7ae44c78bcfe623dec8636375685c8c30be3 (commit)
       via  bf6d5e67e86a059c1ffbde425d0f3f05fd0a0717 (commit)
       via  407237da61abdc0c82d91efab392d78b7e464fb4 (commit)
       via  726c58c7de0f0ab6053801a566112497391cfe32 (commit)
       via  7e5f8c6e0d01e4df0c70fc82101ef9b294138a41 (commit)
       via  379feba88080eb8cd731bbd64b98cc0bbf10931a (commit)
       via  9fe7adc2907afdd2039a67d27328ba82a884561e (commit)
       via  fcf89e5bb006f71ecf5c46b7248216c3dee7e4b8 (commit)
       via  65e63be1f4884a0223fe51ac6ff53ed11605506a (commit)
       via  125f08eea403724713cea1c79913cc7d26406a07 (commit)
       via  580eeae985138272dc0f8c24d1e7f470e31fbcc3 (commit)
       via  419a283fa2981c47f2a117fa56f268c0ae5b5989 (commit)
       via  2656f79608c8db735514bafe8026211c92d06aa1 (commit)
       via  50a7577b022851594fd15f8c934cd3c4a37c01b6 (commit)
       via  f42c29d2172e953887542bf7fb31d2b739563887 (commit)
       via  a5d384c333dbbe863c1515d6167d956b0c5b4852 (commit)
       via  9e8cb4acfd8971f691b35657e1f63a903f638996 (commit)
       via  9f179b1ab674355d5afbb6d664dee2d2ac6cb89c (commit)
       via  3d686a483df3e50904b0c92a5590416bf440e3b9 (commit)
       via  2496f1c8cb1ccbe6a42a7cab2b50a1deb5ae27d5 (commit)
       via  737f692edbd14df39cc2d91019142bd2df2ab9ea (commit)
       via  51f60c38c8d3cae7b0d75ba51eab5af47f6b5df7 (commit)
       via  c6d8af579cffa9662ed1ea9e6096cccec821c6a1 (commit)
       via  90ae149104ee0f55309f8fc10fecedb7b2aef472 (commit)
       via  25ddda6354c4b70bcd8abb79770764d8ee3d6fc3 (commit)
       via  df2b1fb2caed423b22f6d59d22f087100dd1b7d8 (commit)
       via  280e26f17906c2c2fb39c33bee797e90f5cf0c40 (commit)
       via  5e8e02f53c47bcf108c64263249795f702b8b19a (commit)
       via  87a79cbf282e97a7e729205d7cb19182c298474a (commit)
       via  70962d761a364364f2809262a299829f35c1dd1e (commit)
       via  06275e247873f44b2a5045df160bf55ec46918dc (commit)
       via  4b2e41017d621054c0ebb2acb7ceb88fa9617488 (commit)
       via  90b656d7e9bd288681cde6c9482d4c0ca575a431 (commit)
       via  2ec3b41b65f1b7ccbe219544fd922db8fe4a0b2f (commit)
       via  f62819106ede2d407c31d1bd71a4e87c6fe60484 (commit)
       via  7a2c17fcbb789997421725d726340301ef35d84c (commit)
       via  918a8c2ce462cea65e3e7a614f19b4f5ae4ff1e1 (commit)
       via  346ace4c2f5e020ca654541ff4b34d86faf88a4d (commit)
       via  e507800e47973422c080a308955f8d46edc5d706 (commit)
       via  26e0ea9356e45a2aa1810b99c4341ebf6298bf05 (commit)
       via  fddacaea0c816639e5ad02e5c7237c4e53ebb5f7 (commit)
       via  714c72349f136c4b798d0df847f85340c6e76aa8 (commit)
       via  72758b677ad240fd80b769e92f85c639860e6b97 (commit)
       via  68af46b57f817f84cf12bdacc32a1878e1c0fafa (commit)
       via  8b14af6546d542878a8ea6ca08e49e0cba2e34ef (commit)
       via  8d862231a0016dcf40f269e73d5b189606038490 (commit)
       via  60d862ca1de4e5bd690dbc631bce15f08acffa13 (commit)
       via  5d1c6af9f59c7a768684a537fc32389be8cddeca (commit)
       via  827915ca4a4d61ae5b50596e46f5aaf7d402a2c0 (commit)
       via  be0a34cf05c1bcbb119d91a74be44ee837861426 (commit)
       via  64f99d303557e991149bd2d4e6085e9f46efb3ef (commit)
       via  74fb5209f06edcf0b52bdf44ba805cb5f6cd41c8 (commit)
       via  f57ed76faed9e9e922ba93dd3bf8740974eb718a (commit)
       via  f5bc22b18e3c3042dbf7e4ecc38e046b13a2a992 (commit)
       via  921af9c9865a3f54c388b0836f20c9ae3b30b247 (commit)
       via  f397f7c9c2a864f6496732a1406ed1f546cf3ad6 (commit)
       via  db48e1651302797806f5656c856cf22e73761ea5 (commit)
       via  ffea85471c65fd7758e159207ae7f7a089106644 (commit)
       via  50da095243745f2e2a0c3f4805fe187a392832b7 (commit)
       via  d8a9c7d02629049bcd451d4d9b93fdfaa7c2c8fb (commit)
       via  7410d78ed496c66a6c1d806360d1f83aa3321c01 (commit)
       via  0df1499b87688d3e9ff6132617dac1631b7733f4 (commit)
       via  805d5bb95aacfaecde4d668beecff31570eaa2ca (commit)
       via  ef1312fb2e17d15d695dc29be9c3abc25584ba10 (commit)
       via  28d8dd078448af0f964bbdf408374c08ccbcc84a (commit)
       via  bc0163aaa19ba102da3f73f30ca3f4cc11ba7a9d (commit)
       via  3ffb892a5db5ad64b87261fa01478401806894cf (commit)
       via  e840329de670757720cec729556b9b1f7d655ab5 (commit)
       via  09964a022f1c1e969d8258c7a38879b0fa983402 (commit)
       via  b497f1613187c142ad6d0b76761a49811c37da80 (commit)
       via  4266bb02b1f3342d3fc4920c07c71592a14acdd9 (commit)
       via  c234e34ad80801acd902c6d4892a7722fd084a87 (commit)
       via  bf06e6535f7e00a3711978fa7835a3394b82b547 (commit)
       via  e00a105ff35ee53bfd6caeb6f29c47d8ed7cf3ab (commit)
       via  499bcd54f132464fcec55583fcf433fbe6ce4e3b (commit)
       via  6d9601c56f2dd29cfbcf8dee30a2fff24a39df17 (commit)
       via  cfe76b64ba01edcac75f751aba1766ade2e54c7d (commit)
       via  c16eed2cb64089bf7d958db0fe85352f4ceefb4d (commit)
       via  8c050fb080c6e1981dc8e5a97a2313cd24e9b4b4 (commit)
       via  f4823c00581eb91e5b42169405e641463256bbfa (commit)
       via  e17366f09a6003dcc95633ce312aa3753f056e28 (commit)
       via  4166312a45357c2ff11b00219dfb83b7475ac4b1 (commit)
       via  b8ffab7c38f3ede424b8a07553d6ee6b16abb85b (commit)
       via  7940555177699048a111043d22b00969445cba80 (commit)
       via  626596bcb027313f39069be94f85f3f523feb365 (commit)
       via  4241dd5673566a61add85bd9eb52d4ae7db2750a (commit)
       via  785f4aea18b5705e63609001d2aa12871a774804 (commit)
       via  d293e13f756d44cad5a36c15e6f54ae0b6b71c81 (commit)
       via  fb8c531ddeef55c8581d3882bd1b1f501d980a30 (commit)
       via  eceeaeb5a2d40875fd432148b9cf26b41497811d (commit)
       via  e04b779d1cf875010befd37f1a0b86e132d077a6 (commit)
       via  f8163aefa589a91ef9f31da2aafe1eb326a7d9b0 (commit)
       via  2be6756dbbdd400b1734ee014aa1518201271482 (commit)
       via  af81a0728e712fb3d4bec3a0ecfc7dff7fff40b8 (commit)
       via  ccee70dd9fc20a5b39c59b0a7dc8c72e2536ede9 (commit)
       via  508221b49ae825501882e228b18e4586e59e88b0 (commit)
       via  1ad178fd00b675d686c2560829e9a10c5cb44f6f (commit)
       via  40b354e4cc67f1fedf9d4c2ce8d050a9ac68a643 (commit)
       via  2d371a0b01054843f294a6c5ff401bd2093604a4 (commit)
       via  361c586e263ebf4a0531045029c3cf076dbcb847 (commit)
       via  1901e7aa92ccd021d73f32aa97661428d7142cd4 (commit)
       via  e2b1c5c20ff1ac0017e7ac8ef853ce3326210077 (commit)
       via  106287af864c01f20c12d1a0a78a2469a27adc03 (commit)
       via  c0c69366ce4717fb8c5db370ac42ab787782e28c (commit)
       via  87fad50310f2bd0dcc990e80e23b09768918cf5b (commit)
       via  29a30c44bb8cecb341df211bcb3b330f515c9003 (commit)
       via  c7441b5eb9bd4327845a1704e07903bacff08962 (commit)
       via  bd1d3a48415cb6a7c24c45a899ce38b3ce34956d (commit)
       via  695e606f7fd8940c2b260670a89ae2a6cc82b9f4 (commit)
       via  d7fa37dd8e08a6179c97b3cdeea2405016304272 (commit)
       via  795d45e2a4ab58dd169e1febfd82b8e3b4601d9e (commit)
       via  8f5e94f48e7668e3c5dcaa1cde1b8f591c05bb58 (commit)
       via  2a340dd3310d0f67a48d6057214e54416d173265 (commit)
       via  5fe615a4d66f4dea48812ed9e4f250010a8f9298 (commit)
       via  8e3c26e98bcf30dd73a8c64bb9aab08e2f32c1f8 (commit)
       via  89c2cbb53b8ad14ae9d5d06ec230a696bea4a6ba (commit)
       via  b541a7c513aafa636a8ce0903aab4b72504bc0ed (commit)
       via  82a87d043498eeacb7e4f3edc85d1b7c424ea853 (commit)
       via  0a4ada8d40fb687a659161ff7e0d1d0994264402 (commit)
       via  51c2bd7408b0a4ee73ecd1928d4c17d4fafb1ec2 (commit)
       via  6a2dec41b11492b3d6295e9546934f3cf10e6e74 (commit)
       via  f878de5006045c849415afffaffc909458b5f6de (commit)
       via  808073c49814b415b7ad6226a3e8c95bb1dbc277 (commit)
       via  d14748b5888d697583b6dc9df2feed1f09f92a4c (commit)
       via  46b2c2b071f31893c9ce9548537e34747b2941d6 (commit)
       via  09ff61acc11cd495af5f4cba1f9a1f850c6745c9 (commit)
       via  dd0317e49cf33671da3d6b1b17b12f7fa097756e (commit)
       via  6d9b349c4054b5998eea421823f97fb801ff8d75 (commit)
       via  7f68a98c5cad19350f53b00203465c72641b8f58 (commit)
       via  ac30e16e8185883af52b4f45aad9f7a61e5c9911 (commit)
       via  02ae7e436efa33b11227c251eb9bb3a036082fe1 (commit)
       via  2e43e93b78786c42828867057818888c306ded1f (commit)
       via  b0ed6c9379dc680047def564fbc0ba04dff8d50b (commit)
       via  f7947d4018ec2bc7348beaa8d58139b4406471ca (commit)
       via  28a16dd74e9f3a81a5e2a96a54b0faf06dd0687f (commit)
       via  ecb7f7c08ecc57863e606c553d7ea3477e6d2126 (commit)
       via  73624addcafebb767622cfd086ef7a7ebe67761b (commit)
       via  45f735576a92bf50b431f28425e0b4b4a8da8ec6 (commit)
       via  07db92f65a7b49f97bc43ed94ff02586b75e21c6 (commit)
       via  ab741d845af6fac6313ed40b8f2ae148d96aa716 (commit)
       via  2514b693920124eb47eb48f50f07b179bc5090e9 (commit)
       via  df8605b39f109362e86b0ebf6b8cf79fd1b2f3fd (commit)
       via  b6079b096eef4b7b347c85184592584c7ec4a022 (commit)
       via  b11b002e1f08ad44273e9b139fab195e56bf6b6b (commit)
       via  4191267e600e4ff1d54cf42baa2b3a0c9a842844 (commit)
       via  edfeb493f9d95e64b747a11abb528d81da47b16a (commit)
       via  d3bbc5f4309b85e36e260e9c0ece006b131db3f5 (commit)
       via  0095490a7918ba60483d656214dd9080601e886f (commit)
       via  831a341d6b32d1005c6667e71aec9f67c3d48456 (commit)
       via  66bfd16b75e8731a3b03a99e931e100b00c0d266 (commit)
       via  a226c74609b12cac905d06ec97a077bb2633e8a8 (commit)
       via  f8ce37835ad53f67da245db6fed7d2a028514b01 (commit)
       via  92b49a0fc6f24cbd970f8a9f79cf2513cd58a1b3 (commit)
       via  9a5ede46033e225b870cd289221ac0608540a6d3 (commit)
       via  0d3b80f04a1caee51b9995c9626838f85295bb06 (commit)
       via  40d433fd1ca3aedac58a281f982725bfa9f77997 (commit)
       via  7ca4c02513d7c6998d9c92dafb3c0fcbe8d6dd6d (commit)
       via  b69b9c28b6628c7d736476d075d56ae137afd343 (commit)
       via  9cd99ff80c3c129ed137e0d22b7e438f292e5e8f (commit)
       via  b3fcdc50024b3837a76cd854d02a940dac2e5dc3 (commit)
       via  25fe9cb62331d609b87b9d0b1db06d06ab825d16 (commit)
       via  4e38225c4e3af1dede56b5df6f734faaa2b2469e (commit)
       via  e4429ebed2924fd75b23248719a6e0ef4f8b53c3 (commit)
       via  eece795b00d83c9816a2cc7ebb7b8aad7a37bc17 (commit)
       via  a99d8b562d74e3b08c88d52433914d9c1c6bd362 (commit)
       via  5133c8eb5d6564d037c9c7312ee4506c0d2e49a7 (commit)
       via  41eda58f8bfa602f7aa82157b5d1bd3c6ec30466 (commit)
       via  8bee9fcf5fc9e47e1aac0a670cc8d5e3fba8a7dd (commit)
       via  788407b951b162148a2e223da69ff2c16d8d05b4 (commit)
       via  5ee314b6c1ffd8b090ca6771f0896e080f7000ef (commit)
       via  dcafd2d6cc7a98744b08875b35caf218a4a5c14a (commit)
       via  31e8affe365ca9f1b91e31e3798f3d0725da15df (commit)
       via  5cf9e79ca7a28376c7645271136eb2cbb30dc5bc (commit)
       via  7e9c559c75901f391b4151ed6cabba74e60f80af (commit)
       via  0224d569030e6838c63cf946ae7321be923afc23 (commit)
       via  bf7ce656b71123926f0fcb32e4b9577b395da76e (commit)
       via  8d16db0cc28b2d911aee918d5c3582ad29ddfeed (commit)
       via  c99cb9e4ab1bd2683759f35a6878a685bf5e8dd7 (commit)
       via  36f340ae47a0f643be6d59a8190600cdd34eef0c (commit)
       via  f981d5bdba78ef72dbbf0d22c146890a305d487c (commit)
       via  9a56d8f0803d40dacb92eb366b534bbbd5438096 (commit)
       via  f88d4616a25175c42c10334491054d54310262db (commit)
       via  fa108a1e6f15946aa72cd8edd09f3c08255b76fd (commit)
       via  6cc0c78b1f496cc9e680c0726b7561c93c3f1a7c (commit)
       via  324c9cdbcd3644a0f8eb467b1ea61b9ff889ae7a (commit)
       via  cfafc1a905f11da2b856aecea02b8c7e1f95e5dd (commit)
       via  b11e2e666ce3e1a8ad167c82bfc1fc9b820f97f3 (commit)
       via  84172a2e26fd81c1c39b6301b003cc89b97ee75c (commit)
       via  94b2c453829b3aebdaccf7d3d252136b283002b3 (commit)
       via  9480792609c779516ac465ac5a038101032be77d (commit)
       via  282e4ae275dc1b9b0b5bba6eb1b145cd1e80fa33 (commit)
       via  89abef408f02e463cfe9d462fa10be64a94b3b36 (commit)
       via  bd611d2bbd2a7faa24ce8d3b1a422cebb8f71e8b (commit)
       via  86d5b43634dfb16aca5d03e4df2e047bfa500899 (commit)
       via  4370c33bccc2ef5bddacbd364270aa310f89c94d (commit)
       via  e6e1f1addd6f0f237e54f0a55a776c99aa4d72bd (commit)
       via  610c428cf8c9340d955c79cd2daca3ed8657f2b1 (commit)
       via  673603dae49fd06de782780a38e2914ed8cd8777 (commit)
       via  139b283e0d40a3a482a61e1fb9afb5381323d8d0 (commit)
       via  78343e97c68fda079c66f2443bab6d1ee16f0b67 (commit)
       via  9a043bf1792be16a045dd2e2e37c2c6354425b9b (commit)
       via  ab8d8784cd73d5fe8ede7a95a3df36d068a6145c (commit)
       via  4f29d810cad03047c19e5de3c342c90df7193c8b (commit)
       via  b2ae574d39adfe283c61a3ec0c766e8780f345af (commit)
       via  02c47da17b716bfff20bfafe2d5958b2b720ff49 (commit)
       via  af68bfc377c4f56a1355d856fe2c666fec6b0d5f (commit)
       via  1fb3542ef83f01e913d9944b093de8d5c178e5d7 (commit)
       via  b288ae932a53133c986e5daace2d5bfa4cf95d2c (commit)
       via  e9b7aa85c98750b6c8f54f3eb0013c359841f4d4 (commit)
       via  db9ad21d272a4dce53c35095b97ca0a597b45004 (commit)
       via  af77f771b687d3653018bc18b1b07a4805beaa19 (commit)
       via  1a22019e6a86d0636f9847f8891f280facd2fd22 (commit)
       via  1bfccb9ff3ff1b079fd4b76a4d3e75e340e6813c (commit)
       via  0ef49e125811ddb750403f02a091fd892b595fdf (commit)
       via  3628f1479b9fb77bed1ba4ab8e93ee98e14d9960 (commit)
       via  74fc3df9e4ecd84b971904d3e14e5a710d941836 (commit)
       via  8fd228ccd454578fb0367d97d95b90f9073a8d7c (commit)
       via  626ff916ca63334e6c170f059ea47f9cfea19661 (commit)
       via  5f1011ac0ad676d1e7eaba14d1384180e98fb93e (commit)
       via  334801c52c9844c06eacbe2e3af65852f7412e3c (commit)
       via  c5f866e17c72302d826b885f098b1c07d7abdbc7 (commit)
       via  6fd075df8f71c95cff04d58643e5da0d58dbbada (commit)
       via  cf8df03cf9002642a9399da47242d819cc3653e4 (commit)
       via  520ef2ed66d47bb81a55829a88dda81f62dc95e5 (commit)
       via  c19a90851170077b99e694262d002a6e22145b49 (commit)
       via  5a4ddc13246841da1350c8f6e783fd6a1d911aa4 (commit)
       via  03ab85c02d9366e2ea7a4b7ecf25154f4cf1737f (commit)
       via  d324631edd3c2549a8cda05c2fc56ceea7fe0593 (commit)
       via  c025e6a9881527d5b0e5b2398278410fb4e42138 (commit)
       via  2588cd19e83ff454a7fc99e68f1d612945504b72 (commit)
       via  6ad2a33e7fc5cda05eefdec789f4a2033645ebbe (commit)
       via  6f856c62613ffc82bf3572a372d2851638c2fb90 (commit)
       via  840ffcb30faf335dbec4a0f02614c202ae113ea2 (commit)
       via  38d064eab719b8334144094d6499c24718a255c1 (commit)
       via  97707c7b564381f0cdf683c77a6450434cb9b556 (commit)
       via  944cfdbe6cff4e8025a730228b48c1a21b4a2e33 (commit)
       via  8821d8a213008eb723414c6c70de384830ea10d7 (commit)
       via  470972f3f854e92ee1cc8f1e2ada8412a2b97956 (commit)
       via  7c5f22e6c746e97871c0339c0068825018754822 (commit)
       via  b5a6e598c9f596f13d6aec151ee2efb9bf696b21 (commit)
       via  fda66d0405f0fdf42cc6c7ae5e494c4ca3c83ad7 (commit)
       via  6e047f852cb052cf4cbc50799373c5f13382540d (commit)
       via  7877d064a4318fb550b3cbcf64f0ec605e4a53e2 (commit)
       via  aac4aaf42372f61c78061711916c81a9d5bcb42d (commit)
       via  8672d3f031f7898c26b2526960c77c4c522fb950 (commit)
       via  370f2fcb4ae7901e34caba64d31027f8cf69a858 (commit)
       via  6f874305906b18a6bd7ba02f7dee949948e41262 (commit)
       via  d73b0ee5f32bdf769a5d9d19c4cc590df07c1bef (commit)
       via  12bf32881d03225c864afbca431cd93f647ab1b3 (commit)
       via  707f6cc4dbad734325881c5b275138522188754c (commit)
       via  1ba2ed95690396bf081d0af043d878b26b8563c2 (commit)
       via  10412bfccc00708663034a76b1a3c66058bb7545 (commit)
       via  a69c285856bec047570ce58e827333332f40c2ef (commit)
       via  4bd281cdd18645a0bffde9748225569eaa85ea44 (commit)
       via  6ec540993675a4d0e60497c7788cb577a79028f8 (commit)
       via  655f60be3622bfbd90e87a4038cc9c8190ad7c35 (commit)
       via  df7856856f5f2e4535268362526cc039fed69703 (commit)
       via  8a7b5995f039e43ae918dee691ebb8f960f98db6 (commit)
       via  027bc17eca80bd379663e645aa9a7c59573bf0de (commit)
       via  9d8a274e00cf01d2a2ea137f5dbd6f5edb37c15b (commit)
       via  f1e305fca2b4ca79cfed6d406ceb37f3dfb59f70 (commit)
       via  f937e9eae8012b66eeabcd10e4188d6410e7c5c4 (commit)
       via  2e94e61f1c6263adfcbca641b74f9a07ea8298a0 (commit)
       via  a5ca1de1eb575294dbc865a2c4ff643efc117ef4 (commit)
       via  ea16c110d8ca67a5460d45600a399078a101ef4f (commit)
       via  73f5884a591f1e2efef948d108927327a054d97c (commit)
       via  321912626ca7df438e3402d20b529d45f3473d62 (commit)
       via  dc7e6a136e9baf98a2323758765aeab7ebae336c (commit)
       via  2c7ecdc6ec8f9d9a27aa7e4e82fa2d84fa55fe9b (commit)
       via  d0c565fc35e8dc3daa5fb6e9a514c34873e6b204 (commit)
       via  f6730b267a90ad73116e50b027e869cbe0b01211 (commit)
       via  6349d15921134adb4491eb9ce87720a0281a7bd6 (commit)
       via  94fecd72f41542c8dfa82bdf7b47742f8c29b321 (commit)
       via  80485401a9a5e9df03bd3a1503bc5e59d1f2e5c1 (commit)
       via  65ebcc40e55dfb3ee776383891f8a6b15b176d27 (commit)
       via  1d1da90042d2ee7a8215dc6291b54bc1ebe59fe4 (commit)
       via  5b039a12bf5cfc9c65b8e169ed4503e306f971f3 (commit)
       via  b16f334192dbac002a33c31645e228d349de3c72 (commit)
       via  4a5f9f683e5446309a077f31d1bb8d8b77415ee2 (commit)
       via  6c15c9174134be48c57a8ac5f2ff09d0ba5f1df8 (commit)
       via  03fee0acc07c7ec484746ab60b1b55e33b9c19f9 (commit)
       via  22f0bf426ae955c58edb835d6be7be44af5c029d (commit)
       via  1333bbbcc18502328cdd78b2aadc526ebd552a77 (commit)
       via  acddf44071674746d61895d89172481f85ca8d31 (commit)
       via  67d467a09126e9246ca7fd57ff63952577497c83 (commit)
       via  31b2a835f4ed563ae34a6bc07f5fa1dec9b0fa95 (commit)
       via  dc00a94df4a06764d822b29cbf35b532343821c8 (commit)
       via  122224d32894a8465a09561fc0a5220f5bb9c2c7 (commit)
       via  b793108b09138edf0a963d9e3107eb400ee27011 (commit)
       via  353fe33eb2481a14dc324c7c2e52b2032df86465 (commit)
       via  e30e04d4f5cef2af6400847b5e102b5877372f27 (commit)
       via  689b3f9b8fb68218515c05b3b7b13ff4e21c6c76 (commit)
       via  198ab077a14511e0af5f430f89ff2b1abacb1fd6 (commit)
       via  868a820a19ff66c370cf40573ac89738386513c3 (commit)
       via  820241ead7e31082fa99f3e756c6aa73aae7d88b (commit)
       via  2e009c2f45dca5d8070653042c05c17aa4d0d692 (commit)
       via  4ece292c3fba7ec8f02b057a069943a325d091db (commit)
       via  e2be8995642cd962b7d61c9c231980de88302d50 (commit)
       via  57341e5be12f79ee1916369679bb6507a10fcac9 (commit)
       via  2d898893815a980f1b821fcec267eb8e7ded678e (commit)
       via  6dcf53606fc7d46447176aab15954a897e19d6e5 (commit)
       via  1a3d809146c95cd138bad7bd42eb923af0a23493 (commit)
       via  134b450cb65b1986c78e0b292cff78c2f1882a2b (commit)
       via  261d957ebe4cf16aed76eed24b5bfd32f1f5a79a (commit)
       via  3ad900b84497a2e619c30f76670e4757e8765f3e (commit)
       via  8612278973d167a20f4d60d018f18c6975b37cca (commit)
       via  151133a33c18e9ba103cea77a269b56c6f5cf23a (commit)
       via  ff9e97b120076b8707474b4580e1bab205f6dd62 (commit)
       via  85f3757d3ce0e9700cd647420e0257b69b91b9e9 (commit)
       via  c9fa217a8ed0c167c41800e892c913c1649463a8 (commit)
       via  97737d1ee3ce95e45a1a4aa636cc2e11a106a9f5 (commit)
       via  453e7fc9f7116b4251d6cc5dde5110bdd183797c (commit)
       via  749820d7dcf8ba05d025f985f0fdc17bd6658489 (commit)
       via  ceffc4581e83ce1299c96a17c9c5352f491d488d (commit)
       via  c62117165e685beba2f210f87d7d88f578a9322e (commit)
       via  80a50c59331faf268947f97ca702cb9a1d9881cd (commit)
       via  095e5cb398048c939b926094dcdaee6d1a7f3903 (commit)
       via  9334b33e782dd9f514590665ed86e350d7ff8eee (commit)
       via  845ab0f42211847b2cdd498241d5080fb155f8b7 (commit)
       via  263118a6681918add6861eaede318657ee23b7c4 (commit)
       via  20e078293697dd99ddcf2c2151c9f075409cc185 (commit)
       via  f1aa15a509d4249b19bb3d7f1f388829dd5135f8 (commit)
       via  5a4926dd52aed56913cbe10592063ff0da753700 (commit)
       via  210793d5144562f2ab51a8b3f0969ab498a6a9c7 (commit)
       via  41da689280091dcabd153b77627818b0a89645bf (commit)
       via  d49d0ac8d97e30a9b3a9140af6e9f402d39654c2 (commit)
       via  e77f00db5097d741f27c74c03d194a233f648615 (commit)
       via  ddddd501fedda7f0462702717e634f7be107bd32 (commit)
       via  8927fbd63e29005ddb9b2c2264046089bf669857 (commit)
       via  e9687ec4ff525ae4a88314ba4ae97da770bd012f (commit)
       via  e27425e63392683b85101961489a83e0abef133b (commit)
       via  f274c66b2141aca0f332e272b77cd0a048cef7f6 (commit)
       via  b939d0b64ac0cfb90e672386a8586a5515ebcd16 (commit)
       via  7b31485553ed6a1cbc1ddde0ae3e678e404d1f97 (commit)
       via  58f78ea0c81a106cb2b9220eb9290bef15466cd9 (commit)
       via  b7cbdde8854ee4c51ec9cd49ce639bd02d646355 (commit)
       via  64b5d358fcaa039ca2e7634aceaa5ed4c3a10cc4 (commit)
       via  17126af519bf8e43ecef76c4ebd7f205c4c4daa8 (commit)
       via  f5fb893ef5db2bf0e70aa0ba108c9d189fea607b (commit)
       via  25ae24c53dbada6be01791c5f15b26d103ee588d (commit)
       via  07e46eb2e25583f0f3e06342f0c854769b353b10 (commit)
       via  6d5511668545d00da4e3e5dd142b4f082c76b083 (commit)
       via  1e981ffc8654910d868bac129c48b1381b935945 (commit)
       via  71ee95fecd6b8afb2b19914b2395f63c44a8e812 (commit)
       via  52fdfc82a1ceef6251f816c64fc64fc78bd9b3e8 (commit)
       via  2d9c5530456fce1b047fedf83ff48412509b7164 (commit)
       via  59b6c01edcd7013a112aeaf9d0bc33a8d2a2b8f1 (commit)
       via  08814fc43536cb801b1db0c548bcc19b67b19dd4 (commit)
       via  7b054153eccbf0843fbbfb131855f56ea5c695e0 (commit)
       via  2294f2fdffcf724cc28653976b8029351e41fd77 (commit)
       via  e5e577cc30171232ca9a9ca6fd6f97e3d59539a1 (commit)
       via  a13a5288214c6dbb25bd8da04057f8ff17750ec1 (commit)
       via  8ad7f49e5b5e9a254f73de53941a58fc6032a737 (commit)
       via  4097daba7e43b3a1a3af77a715da1a2418d30392 (commit)
       via  cc9757407fa124998613329ce73c5bba98d5cf21 (commit)
       via  109169ca9d8835227cbfcf2c2da5434232e2c6ec (commit)
       via  a77077efbd5658a39538557911fccca9da5a81ab (commit)
       via  3deb2d7685f9e9b502a992491f747c3a657e4d15 (commit)
       via  f3d9cf9f788e5b98d270309c03f44b26568944eb (commit)
       via  727d2825675e9d67999a15d2e9903bf8af854395 (commit)
       via  6f1fa0884602c05fba05c14cd6eb6884ba928e8e (commit)
       via  653a408caabea249e4791dedfa433400dad90713 (commit)
       via  cff25ce181b3a330f12809373407f4d54f4cc5c4 (commit)
       via  666830d8a75a3676f60b48028b115edb19d06cc7 (commit)
       via  e3a2c2caeea0a4f4d36b1117610d2a32d14ac69b (commit)
       via  20d3ffa76a849e2105e72e6b7c8835de5e9c1b21 (commit)
       via  a876dbadbb1fa625e3e5fa8bdffe803e6eb473d1 (commit)
       via  a8c50b3fbe672ea949a5c6c26c6db04566a7cdb7 (commit)
       via  8287b6ffdf2cb631591decb17429701218122259 (commit)
       via  e5583e10eed68f75e8981571d322b553b784dd5b (commit)
       via  86e3141aaf13b1bc55d74bd6f557a62b814e944c (commit)
       via  982261fec4707d0c8d0723d90d9c0e465d98aa93 (commit)
       via  41b88dab57df5a1b490550fd8c4b80788ce55a81 (commit)
       via  f2fd58347765c32fddd45b9dbd87097ad73b2001 (commit)
       via  90af50dd30c2ea0abec10b36d5b3fbf29fec2b16 (commit)
       via  1b35145ee6592ba9e4017b7b2686edb312e79ad2 (commit)
       via  8eb1240c18062bd3614ecba31f4c6a2dc6ea980d (commit)
       via  9366d6b2e48ba409366adc0516825c41a86dec9b (commit)
       via  d4129a39dda08e8cfbc002461e1e76103de8f108 (commit)
       via  b7521a33ad61286eb9e32915c3a691c824bae719 (commit)
       via  d1f23fd4732f9407dfd80e15588070d920050d9f (commit)
       via  6d38ec6d31e295b60bd5c84cc89229484afed56a (commit)
       via  f2640263468aced5c91ac5fc1f15bb5691f7eb20 (commit)
       via  139cc36c4f24dbc8c759f6bc3fba536698db6e03 (commit)
       via  4473d16e7cdad08eccad95f5920e1aa171d5512d (commit)
       via  c3936e8c1b40cbe2e88c7930a99728cab95d2528 (commit)
       via  235491231bdd1fd93507c835767503f047e10b91 (commit)
       via  dd07e7f7ddb5d704599f798a8ef3d1c8a05cb9bf (commit)
       via  91090f8e8ef533ad39fc8060bbf1a69bcb0b5af7 (commit)
       via  2a685b05f91f71c3b00ee8890ebaed16839b0cd0 (commit)
       via  8132295cfd2d26a13a6cd2f61b7f5c56ea5efaa7 (commit)
       via  883a7ad93fd5a4dd0ca71d461d0624a898ad6865 (commit)
       via  da158a449e7ddb7f06fda929d7030ff8496e71bc (commit)
       via  bfa5d8f54612811d306d1453b7d2da549bbc60ee (commit)
       via  c8b5250cc50a3451ecce9685d8b3457b3c1b133d (commit)
       via  d1a48bcce645417a983a4c96090ed70e860915b4 (commit)
       via  ab9163fbbf629d82e6eb455dde3221dbd02ea28a (commit)
       via  f968b1b2b0de0c16311f3781664dd4464822cea9 (commit)
       via  b60c41a3b3e05072637e6277f23455b76197e5b3 (commit)
       via  b39be886ee3562ff924b631a365b1e46d424f636 (commit)
       via  1ea83c98a8fb8f58a4de8368d1fa29d341a2a73c (commit)
       via  eafc1c8d2223693e96c9619897f92774735fcb49 (commit)
       via  4552df253251a92b0355bc6cc58513aa5feb8b30 (commit)
       via  4edd4887541eeff2970c27aa16328a42051e20f4 (commit)
       via  801256914d42b3aa4bb0af22432471b1d911a66c (commit)
       via  90246df5d413c6b6a2d57d66c48c2fe3206eb42b (commit)
       via  b17be9b496a6dfe10babb8102d8e55ad9a3fc2e2 (commit)
       via  a5b95344a4f9fd3202e627ce08a3a492e35a0fff (commit)
       via  f4bf9dc40689f1ab221d64af6932286d4cd010e6 (commit)
       via  99c53218e3f0611eafde4f6375c4c5e4c2865875 (commit)
       via  a9a4f69ad7bd02209fdce02b28c701c23fe48a15 (commit)
       via  d473f407e3b168490032905e60effa3cdbbc063e (commit)
       via  e24381784b0a56896542d1a5828a77ad0e1c40ec (commit)
       via  613f84a0fcd46f2143b046b57c6c6444eafa4d4d (commit)
       via  b8c728ec51696c5d17ef09a00b3b193b70a487da (commit)
       via  7cb7fa6b3a0d02985b4a51f7823bc1cb631d6bfa (commit)
       via  ba1f47ffee3d3a2d31a47eeb461283a93e05cf39 (commit)
       via  d04f830dff5b6f184b62a44f2a047fea89068feb (commit)
       via  7fb8d6150b57560a7e72f50b4913be11fed0fb97 (commit)
       via  2634719587458febd3e307eecf1a99428279778f (commit)
       via  ec5086e248d9c75bea7399a3e501ee48b14c047c (commit)
       via  749dd44d30c86568b2ec7340ced6d849c0dc3a5e (commit)
       via  a917896b61031af1d4b77b3da73e11af646057cf (commit)
       via  2a8c466336db734f9f271f041443fd2b790e3071 (commit)
       via  f6c5d005914efa40c4d7a84d3a95894f06a70d7a (commit)
       via  2845394f72e2733f96621a1f02f1b943e62c0964 (commit)
       via  002b46da8a4270b89003a28b4f5431d857cd0b33 (commit)
       via  9bebcd38f42da289a3eaf9f473a9529f8d3c4664 (commit)
       via  9a7776ddef6626536f21c09090b8329168a053ce (commit)
       via  9c2d39405c30b75bc817a6212a116421ebb927f1 (commit)
       via  4de65c4af42894f57b8b8c3a050260725a96b109 (commit)
       via  0033d20449b3bb558f2ea470983018db39b572aa (commit)
       via  3b016a709dd4be5a978dbc8f04b49289612b5be9 (commit)
       via  c31404533f2fb70efd40d7b56d8165e2ab8bd160 (commit)
       via  dda3d358224c334c8fa4902b3e20c75caf8bddbc (commit)
       via  8070f62fb5240ee5b924d0dae501a50f4662ffe9 (commit)
       via  19689c97a05e0a10691b671c4c37ca0bf51bdd2b (commit)
       via  3a3fcc811e6b50b21124a5c5a128652e788a3b67 (commit)
       via  2d27ccbc105e84c27547a003aec624a3cc3bbd66 (commit)
       via  b372e439e05e336d5e52aa0ce69c799c15691932 (commit)
       via  84932431cf4fbd494b4597105faed26ed2ac4efe (commit)
       via  b8bce60ff16e52862ca5a3c5a6018420b4fa3cd1 (commit)
       via  9a1bb117c165bbedb2b75578ac71e46f2139470e (commit)
       via  d999b70a3f395afe06d430c14fdf02a64ac28c06 (commit)
       via  ae04256ee85fa02288f34587faad5d461ad57186 (commit)
       via  8e1b6ab073a890cc2da6965f9a57bfc91d8c6d38 (commit)
       via  0209a2f92b5693c72975572b7438ebc6d9865b6b (commit)
       via  4a6a4664f655e785e234e575f024f4674155e274 (commit)
       via  cb42b5fa92329496f25f9479257bd03aeb346205 (commit)
       via  77ba38a61492799cc3c615f0f622f34fc10de826 (commit)
       via  0bdd1a9d8d3eef8cae027be133ee11fc9a3b5165 (commit)
       via  83dfdd298d14d885b9ebc37b3b1af703cdd27f8c (commit)
       via  2640c8a8e32c2f20023e4cb91f87684c62316f19 (commit)
       via  7d20408ec4a5dbc973520dd78dd2531c6a1471c7 (commit)
       via  61c77d679840e4c4455615295ac30215bb01cdf5 (commit)
       via  b770147356376ddb0602358a0252c4f68a9c80c6 (commit)
       via  54ee5b628f8d4a1447670f65cc441fc32a9e96ef (commit)
       via  672005782e57e049c7c8f4d6d0b2a80c0df512b4 (commit)
       via  3688ec3ef963c8e41f845c1d98205ca69f91576b (commit)
       via  2ce5406504540399ed78306198802fc4e1824de7 (commit)
       via  cf1cc29af12447c347a5574b4dc1568c7db61c0b (commit)
       via  64b5a0f4dde23ee9b809b909bccd4ee8637364e9 (commit)
       via  a0a49e530b269679695daa6014bfade0b36970e1 (commit)
       via  6204a717fc63891839faefda75e95a364ec0434e (commit)
       via  93976a816e6d690a6c7d77801e31ce6ee5bc4899 (commit)
       via  df66588b0f6daf99573153cb384a676ced27f0b1 (commit)
       via  c7030a9c0ac36cccb07ef562908b62c2ef9d8bb4 (commit)
       via  bbe90168171e6aa8bc0045162ef9f03a01e36309 (commit)
       via  cc2464c4969f232ed6efb305adfdb69b2176ff34 (commit)
       via  03e6f1fa6846dd860d0cd7babee62b8767cade30 (commit)
       via  b8b92e2455c2a9652e60a17dd38fc8dc031b77c3 (commit)
       via  9cec7a2482a68ca1ae41d65fc8b94584d5020c3f (commit)
       via  89c0598d4c1c414c7c567995fd1d0e569fee3d08 (commit)
       via  a148e931c6c6a7d2a5e602f188d67e199082ae0a (commit)
       via  e3c983ea9d62cdd0de86a8f4c4164c692252fb74 (commit)
       via  ceb716e88f2ade9d9abe116fe8cddf34844d71e7 (commit)
       via  bbf408117c40f2e02b9d3e23025c01b74f5bdc09 (commit)
       via  e5bb7f10e01224d75e55da6e545f779ac0fa73a3 (commit)
       via  34ff01a84390ba7a5c0377c326944fc026d66140 (commit)
       via  f0023823ef3282bd3483e6a7aa19b0a0939a6ba4 (commit)
       via  2c9422595f41635e2f4f7ef1afb7eece9001feae (commit)
       via  6d1f5176f257ab9a9b47ae65b528c9ab79db5b31 (commit)
       via  460b6f2daff3c413de4312424d38cd50c481016f (commit)
       via  c62b1edd42d9522d6277d5ca648f2e4a4214341c (commit)
       via  4353f92301cd903a00831a8272d149c45bbb5b8c (commit)
       via  76a94131bf8823b3ad0192878ecef6b6ef2da004 (commit)
       via  31d394232eb8544154198ec3de7328ab1a6b82a6 (commit)
       via  78636c03a561d3a9a1b7c008dc390fe854196309 (commit)
       via  88be9e7481f167d139b4f3c981368b6071c61384 (commit)
       via  2ef89abb8cbafab865baa2399e2641879b495aea (commit)
       via  5e3d2fc37be8b73a0ddabf1389c75f79e77c7e93 (commit)
       via  ae2434732c4b24d1b91ab30615e79f48bd40b9b5 (commit)
       via  7d8a6e3f517d0bf959a2db2c9c774a15439f6c94 (commit)
       via  d1fd151cdd1faec5fd4966118586c746a89d93c1 (commit)
       via  562e3a8a2652dd960d5d76208c723f717e47330e (commit)
       via  6ba9bf05e62d651505e1487b50eee90bd6379e02 (commit)
       via  edd9912ffb4a44068aae2ec21f0449d3d53616a3 (commit)
       via  32e60534c7e2b6093de74bd75d37cb117f1d3a5c (commit)
       via  448d06e8dc5c06f111bb6baae7d456e174225729 (commit)
       via  4d6828ca04636d331f9a050f05b576e489022a1f (commit)
       via  e971ab1a229d1ef1d5c1e5e1ff52ec597c55270e (commit)
       via  8f39f8bf905ca84db4c853733f6a3d3a3011c237 (commit)
       via  ef0b64d8d0ee7851a4d149ef8e39c133e4b788b7 (commit)
       via  dc96b68a826a652d514f994d1f7932fb6fff87a7 (commit)
       via  e4e5c29fb254a05a134886ee6518e3d7cfde1cc6 (commit)
       via  5d3b00abe9a506ab3c3310cfb82394534463c40b (commit)
       via  95e50540529d5a411880acbb6ee9f743226243a8 (commit)
       via  c75adc040ca2767545e9cff51575b2ac1706efcd (commit)
       via  f5ba2dee8d589639de0e0df315322e5b312c45c5 (commit)
       via  9b02c4454abee568af9ff1d6c9044e9cd757b5aa (commit)
       via  130b51ac17f44707261f4885d2fadb44a2f5a1e5 (commit)
       via  5d255e321ace772df825d4ac2604b451bde7ba15 (commit)
       via  aaba23a7f450d43d0062d66a712e5d0de62f7e87 (commit)
       via  180563217f2579029424c9b79abe7bb2fcfeb51b (commit)
       via  b31164eeecf3f798f75a71577ae365daf8211946 (commit)
       via  bd55e5ccce4b35ffb1028d7810b93df3b7522d05 (commit)
       via  d22ba3e7629976f6a55382140945e92a4d5600b7 (commit)
       via  59499c6189fd0871b46acf7c3c1a67c00bba9956 (commit)
       via  20fdd28047bfe8fabb7cebbda49386f4cab3c020 (commit)
       via  e65dc371a1c421dcfe4b6bbf2f937ae7ef5a563d (commit)
       via  cb92b7618edec56b534f89129556ba74b62e4c6e (commit)
       via  38bd193c9908d88f26f36ed62298b0b1ad13d2cb (commit)
       via  9019e629679ec12c1a4c9656bab337e84f861e8c (commit)
       via  057c04d1157322c235872e412bcc22487858c5af (commit)
       via  218cae5a714342b5d82a5b004d58f0a9ebbbfe5e (commit)
       via  880dd56f468b57a198ab2136767d03ddaa586eef (commit)
       via  a274a4f22c83c536744e77e3dc873417912a1928 (commit)
       via  2ca0296a824d12bc55e3d4d0bf580f26a10eb830 (commit)
       via  c38a10bca63e4fea5573dccf4caa9d17e325a6d8 (commit)
       via  87c02e03c4ae40e5e96792f67d7aad09b7f50935 (commit)
       via  aece54e2c790d65c660bfe0bbbfd42d9cdd3fe27 (commit)
       via  52b0837fc72d5be2b99b71e6223d54cbfaf1716a (commit)
       via  e1dff04f50833437c47cf1b737e69d3a73de9d63 (commit)
       via  1cf9d9d1ee1b5bb9ea73208b9635252ab5d883fb (commit)
       via  6a33dc6cb1546acf3c5db982e3f44b41bff67b05 (commit)
       via  2e5f5e3c6d3716aec736474a198de5f7746a5450 (commit)
       via  5ab5d98fa515cd19a64e8d5868fcbae85eec9dc5 (commit)
       via  4660ac02b9723380b4581b4c6a46e54861b95059 (commit)
       via  1cfdceba98c380ad1cebb3a6b3d1f141d852c691 (commit)
       via  ef6f49570c748bed2c086faecec9064b9b04514a (commit)
       via  5296cbf51c564fdbf2beb299beda43bdd52a8229 (commit)
       via  810d47c823ccac01888f3e64e1dcdd247ef92986 (commit)
       via  9be362ab7efc6ad27a678e00f9b0b35a24993aa1 (commit)
       via  695e5d209ade018afea1b2d2f9e042e9c78028ae (commit)
       via  fd8213f83d0656bd0cd5215306e22e5a25058bee (commit)
       via  d0302f12c4d33eabbcbaf23e941ac33e1e364e3d (commit)
       via  0fd357b48642f16c3adf8ed474f299daecef2613 (commit)
       via  9ba4ba4394e729560e72148a0e52160faf83893f (commit)
       via  c87688a05a8b49479ee10127470cc60acebead4a (commit)
       via  98b6f846b628e858acbae9258bac78cf54126d27 (commit)
       via  6c3825f2b750bf9b913c6ea986739e648c470603 (commit)
       via  a81c0c28ea606b0d0a2ad5eeb74071c746b7cdeb (commit)
       via  6e517e5e6243c1014ab35d20a6b08d7fd6a52e9b (commit)
       via  3bdf8aad39d39168d096d3042b659fb9d2ef1651 (commit)
       via  559ee510cb7058d9e0d3384302be4a0053e179cf (commit)
       via  76c5584261baae519063162fea47620e631005ce (commit)
       via  6b218d07bfb6bd1b16bec6f5ccce7301886d6b79 (commit)
       via  51a25140f5314549b586a35e05e9f1e3319fd2cf (commit)
       via  d8d91cdaf9fd1e0a6d676a211da024fa7f52055b (commit)
       via  3aee8e4b88269ec6fbc47779cc2acb5cce6d78b4 (commit)
       via  cf2aaecb77099ef8d2b9f9fb8ae0d1e362643271 (commit)
       via  fac7bebe532f05b6053315a6be505e49c500f4e0 (commit)
       via  f73b0c1a45a7c73fcc034f7fd34ae906dd51b4ad (commit)
       via  6c277e6e677df4b92f7588513f34f745af5fce24 (commit)
       via  969078c9755b7e28dcabe277629f757e20a19f1a (commit)
       via  690beb4d6679c66f45d09883408cb860337e31c2 (commit)
       via  883e9a3bcbd0de620272c79b6a081b42b0832ef4 (commit)
       via  2f13ab11aa71a2b8fb6e045a9ff81b7b2252cbe0 (commit)
       via  2baaf773daa797048ea96573fa01786d129f00fb (commit)
       via  eda9e61107ed34a5f7a566fe6835a48c48aec1d3 (commit)
       via  fc7055f2461fa92bc17d67f02058399dca5736ae (commit)
       via  7802531da03626cfded497239e29a8ec2e4a3285 (commit)
       via  07b0785c207cd46751abcb17cf44168621bbc479 (commit)
       via  92132dda0f13b2f4e82048797acfb7c34da2f53f (commit)
       via  890f987c15029d7e29f7deea0bba0b8d4ecaeaeb (commit)
       via  641249f6b143c4e22825e18e0dbe22bb04d21138 (commit)
       via  b1a3f96a8139c5ed3aac7b8a77b06ba4c0a877c7 (commit)
       via  669dadfa07a5e63db8d9e572603872be88db52a3 (commit)
       via  fd1f64a2e9e794a0184238bf3a0c4b7f5c6f963c (commit)
       via  ea6ea2f554bc81b856d5286c23c2b4c8ba303fb9 (commit)
       via  26b18d8e7d8bb5f1bf9ae20e40e8b291db3cebd6 (commit)
       via  9288839793069e589615e4bb47257b63501586ae (commit)
       via  3081d01a686922957fa298a3101f3cb1e8200ce7 (commit)
       via  1b7ad5c5d601b6388f0fc871b4fa42d231c05400 (commit)
       via  f15806e05d97ac060f4e992db6c3e2b6814a9bbc (commit)
       via  9828a0bb4c6e69f401738013e4adfb4da95afc03 (commit)
       via  b5014c2caaef8ee061c47b907a599526d9dbe875 (commit)
       via  9cb2ed46f9958cf80221a75df5a56aa82d46133e (commit)
       via  da62c4ea16e14fac7e298385a681043820d69ac4 (commit)
       via  e50d744b189595aa9e2f2351c57225980387362f (commit)
       via  4d9dc03bbc42fdfdac0dc72f2bfac1f37f70e8b7 (commit)
       via  f8471a5a6b20693d3c7afc0645de62c842b82bd3 (commit)
       via  d9fc76bd4e8c9a459fad7152135b738496318415 (commit)
       via  ac38884dc9ad32a11d09f55ba9fe399cd0a48e2f (commit)
       via  f4dfd14bb77fd884a0e5afe306c677e7e873f41d (commit)
       via  b0db9bc55ce9b66d0fba511239c278d1a257a9ef (commit)
       via  8dc9884fc74243a6810fdcac603e1941962b666a (commit)
       via  5c7310fd853620627b57c72ddcc3b212f29f6056 (commit)
       via  e25cfb3f3a843122df7e70e97992a97ffe81717a (commit)
       via  0f3c9c2640ffd76f1d60f16dce6d16c47aac98b4 (commit)
       via  164db73bb35173f45a7eaba1984c3169cba778e8 (commit)
       via  e1c831a43ac1945db5a52ee6873856b9399dca76 (commit)
       via  ca8277c6f507e54a043b84a8df9c55ac39a83c6e (commit)
       via  b3d304167929bc199e6789fd67ffea035e7fdbf1 (commit)
       via  7b027a34676880bded1a05a5c47bfa85a6e79092 (commit)
       via  434f79cbfa00c7370724dc25091b5a42bdf8d9e1 (commit)
       via  7550343b09a94dc1c659ad74dc75b3b77e7ab0bc (commit)
       via  f522af65aa004fea09705c74115836c6acd1cddb (commit)
       via  4646c4a3ef6171a0ddec4fcfe0c6aa34b50501cd (commit)
       via  6e202c432e2f16dfa83a7dc21b759c03623fa394 (commit)
       via  0f2bdacd6ad3dbcc905925dee12cb30918c33a11 (commit)
       via  a269783a41ae8b18e5b24d934c96ce9e90de3067 (commit)
       via  0439361f817c3f610c1f5ec859bd302867472e50 (commit)
       via  4deaca2ce2c4ed2c5ab53f57a7747c71126a8da7 (commit)
       via  4f40fb6fbfa95c51b6abfceffcd0e1ce80824e70 (commit)
       via  d67e76dbb63e277f0d503224e63e85cc5d91ac11 (commit)
       via  33bfc249fd692910bb1e3f7a5820d31dfda0f284 (commit)
       via  25bad336ed7af83bfb78b2a3534fdf223554bfc0 (commit)
       via  abd1ad000a2861b46df445888365678686e31bcb (commit)
       via  e873ff83afba08ff61a5e98ab90d5ee05ab5c601 (commit)
       via  e3707dc9deb28d5144836032a54dbc028247835d (commit)
       via  0ef322973a8b9dc9c0f5ba8155ad780016f3654f (commit)
       via  4665f087fde174a9de3e1c3f3de090dd4bfa85e0 (commit)
       via  5714e1cef2584410a7823c7ead9d2435141fb0c4 (commit)
       via  b3427143ae8dc628cb3748da7618700c6bd7ac9e (commit)
       via  f9ddb679942b6f4309d05b5462fe5cbb3d0a2beb (commit)
       via  c68fc8b783804e093551d93cc1b8c10964cdaaeb (commit)
       via  aa3bac054364aa2d3614ded28df4980639184319 (commit)
       via  efb8515465dcb03526a35bf87b549cac97bbab8c (commit)
       via  2717c43bca6f920c4d3b0909c33bf3c1f76a70a9 (commit)
       via  80e439d146f661c416b7f42c4180b16aae7ac2f7 (commit)
       via  75f53efdc66be8c6ffac31bd17a309f9065e273c (commit)
       via  a45606d0036565c468b462a207575bf2b4077fd8 (commit)
       via  1f1661d6a5b6f22acb48460b5304e29af2a0a554 (commit)
       via  086569ee636d91a820aa23031dda3cb74bab9505 (commit)
       via  2c7dcef74c3259d2d5db7a11f5c77d18d3a51e85 (commit)
       via  c6c770c33eb0f23e7e8e04976c711653cdf1a41d (commit)
       via  4ac169deaa1eb4c8df4a49fc940700971fa5863a (commit)
       via  97e598086b37583585b455d2b804b6e49d97ea85 (commit)
       via  ef370b0967024ced9296ff2028abc1b154c0a951 (commit)
       via  56d301e212ac1964223cff8ef9c34889cb1a6e75 (commit)
       via  2fb5b93b4cd56fd68b525371ba63b0933b61d03a (commit)
       via  c62d5ff73ceaad21bb0784ed6098d307a625b10d (commit)
       via  ba139824fa06a97f2a3b1cc4c6085d10a83ec2b9 (commit)
       via  ac75e3648e6a9c3a8cf45d5fa491abd3a3ab3613 (commit)
       via  3907bbbcfb806799a5349e46a2b804307a0e9836 (commit)
       via  56ba0ac1e3a3f32763060ab862a6f0054c8a50bf (commit)
       via  0a4c7a1ca8bff458eb11322d2c94ec9ffd832524 (commit)
       via  d938e96e59a41d5eaa11040513815b757e58eb0c (commit)
       via  1b55547480eff13851f2d53ff96afbace11c6004 (commit)
       via  5af547e7fc9ddc0b472b99c6bdb7341f6204e43f (commit)
       via  5d011324a721d7cf3babfe6aa068e247c7f27f42 (commit)
       via  d76613f23eec2a66f4727c69fcec3b5e3be3da22 (commit)
       via  edb4593c38d421b5d538b221a991b50c36fdba15 (commit)
       via  e58f247f9c3a95ea2805fe132777d192ef51f6d1 (commit)
       via  7e7201c453ad7faa5d26625ca9d263ee625ef5ed (commit)
       via  7a8b315855fc8edba2003fa69cb86cf664f4c2ec (commit)
       via  fdd74966f222b67aa3161e809c6e9d8aacb16b12 (commit)
       via  b33bac72fa26be8676a6da73e0b13f51bcd40034 (commit)
       via  80e2bfc9ee29a5ecac3a9b8eaa2d470ae30222c9 (commit)
       via  4cce52a1ec161008243f5bee63df7f6230c0f7e6 (commit)
       via  151d56afe0d7d9eb527fb0a194f383435b2c0f65 (commit)
       via  5bb07a3cb626b18aedfa463b6b344bf0fd963e71 (commit)
       via  a027dcc41d381a3c76a5b20d4d55ad9821af2308 (commit)
       via  0419c2813a91d0746cc70f4ecab33efca4b9440c (commit)
       via  802ea16ef91b30bc4fa9a61779b5c3602219bb1d (commit)
       via  c15f3bee8d46f05afe1d3f582778d74c7e706485 (commit)
      from  75ee933b844a3cf0f1dc3a99337ee3b557d49631 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 6e1555c9a749b215665619f4ec6f0b0d4d0f3fd6
Merge: 75ee933 87bc937
Author: Samuel Thibault <address@hidden>
Date:   Sun Nov 29 13:10:15 2015 +0100

    Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd into dde

commit 87bc93725aea306e8bd4e4171622e4418869fc2f
Author: Samuel Thibault <address@hidden>
Date:   Sun Nov 29 12:47:14 2015 +0100

    Add devnode translator
    
    * devnode: New directory
    * Makefile (prog-subdirs): Add devnode.

commit 226a9d9c34a2d187f978a25874488e5b07986d7c
Author: Justus Winter <address@hidden>
Date:   Sun Jun 7 00:58:36 2015 +0200

    libihash: prefer performance degradation over failure
    
    * libihash/ihash.c (hurd_ihash_add): Add the item even though we are
    above the load factor if resizing failed.

commit c1d5c163a89f53a3c6e4e67f5f4119af96f7a470
Author: Justus Winter <address@hidden>
Date:   Wed May 14 16:24:21 2014 +0200

    libihash: optimize lookup-or-insert operations
    
    If libihash is used to implement a cache, a insertion is always
    preceeded by a lookup.  hurd_ihash_add has to do the lookup again.
    
    Provide a new pair of functions, hurd_ihash_locp_add and
    hurd_ihash_locp_find, that can be used in combination to avoid the
    second lookup.
    
    * libihash/ihash.c (hurd_ihash_locp_add): New function using a
    location pointer...
    (hurd_ihash_locp_find): ... that has been returned by this function.
    * libihash/ihash.h (hurd_ihash_locp_add): New declaration.
    (hurd_ihash_locp_find): Likewise.
    (hurd_ihash_locp_value): New function.

commit 6c948532d2799bcc172053cac504c4aa5f016bba
Author: Justus Winter <address@hidden>
Date:   Thu May 15 17:55:45 2014 +0200

    libihash: add hurd_ihash_value_valid
    
    * libihash/ihash.h (hurd_ihash_value_valid): New function.
    * libihash/ihash.c (index_empty): Use hurd_ihash_value_valid.

commit df778cd01505e3a8c11f5b13f5ee26a4be290f9a
Author: Justus Winter <address@hidden>
Date:   Fri Nov 6 14:42:04 2015 +0100

    random: satisfy arbitrarily-sized reads
    
    * random/random.c (trivfs_S_io_read): Satisfy arbitrarily-sized reads.

commit 710201a5db7bcd1c13364eccca65d8b13c1d0d65
Author: Justus Winter <address@hidden>
Date:   Fri Nov 6 12:06:32 2015 +0100

    random: use /servers/startup to register for shutdown notifications
    
    * random/random.c (arrange_shutdown_notification): Use the new way to
    contact the startup server.

commit 5f7601f47a3fd8957a52c03f1135534fc2232539
Author: Justus Winter <address@hidden>
Date:   Fri Nov 6 12:00:31 2015 +0100

    random: improve error handling
    
    * random/random.c (arrange_shutdown_notification): Improve error
    handling.
    (main): Display warning if arranging the shutdown notification failed.

commit 608ea90065a50b7f8e3a5592c8e8e4cbd0265490
Author: Justus Winter <address@hidden>
Date:   Fri Nov 6 11:48:39 2015 +0100

    random: fix odd formatting
    
    * random/random.c (trivfs_append_args): Fix odd formatting.

commit a9eb3e9765a21f9903705e2b9f46694529af8155
Author: Justus Winter <address@hidden>
Date:   Fri Nov 6 10:39:53 2015 +0100

    Remove unused variables
    
    * console/pager.c (user_pager_init): Remove unused variables.
    * ext2fs/pager.c (create_disk_pager): Likewise.
    * fatfs/pager.c (create_fat_pager): Likewise.
    * storeio/pager.c (init_dev_paging): Likewise.

commit 7dd0f755f4ac29e6c10085c16e18dd97d92ae5e7
Author: Justus Winter <address@hidden>
Date:   Sun Nov 1 12:34:36 2015 +0100

    libtrivfs: remove deprecated static class vectors
    
    This API has been deprecated in Hurd 0.7.
    
    * doc/hurd.texi (trivfs_protid_portclasses,
    trivfs_protid_nportclasses, trivfs_cntl_portclasses,
    trivfs_cntl_nportclasses): Remove.
    * libtrivfs/trivfs.h: Likewise.
    * libtrivfs/mig-decls.h: Adapt accordingly.
    * libtrivfs/cntl-classes.c: Remove unused file.
    * libtrivfs/protid-classes.c: Likewise.
    * libtrivfs/Makefile (OTHERSRCS): Drop the two files.

commit d9a22b92a226419c50fd13013741679ce7e7b624
Author: Justus Winter <address@hidden>
Date:   Tue Nov 3 22:44:07 2015 +0100

    pfinet: fix sanity check at translator startup time
    
    * pfinet/main.c (main): Properly iterate over `pfinet_protid_portclasses'.

commit ff578e992a792e4a844a9a800e48ad9cef69e97a
Author: Thomas Schwinge <address@hidden>
Date:   Sat Oct 31 13:35:44 2015 +0100

    GNU Hurd 0.7
    
    * configure.ac (AC_INIT): Set version to 0.7.
    * NEWS: Finalize for 0.7.

commit 3f0a9b1145c25d1f0f19fc93da3c272c5505a5ee
Author: Justus Winter <address@hidden>
Date:   Thu Oct 29 16:39:31 2015 +0100

    pflocal: avoid building the interrupt server
    
    * pflocal/io.c: Do not needlessly include `interrupt_S.h'.

commit c3c6b55517d7d1e217e88d08f3265a5a7d77565a
Author: Justus Winter <address@hidden>
Date:   Thu Oct 29 16:38:17 2015 +0100

    hurd: fix type of in-translation function
    
    * hurd/hurd_types.defs (interrupt_t): Fix type of in-translation
    function.

commit 0437af60d3bbf09003f3fd1fdb9993958fcd430d
Author: Justus Winter <address@hidden>
Date:   Thu Oct 29 15:43:28 2015 +0100

    trans: improve demuxers
    
    Handle multiple request types as recommended by the Mach Server
    Writer's Guide section 4, subsection "Handling Multiple Request
    Types".  This avoids initializing the reply message in every X_server
    function.
    
    * trans/proxy-defpager.c (proxy_defpager_demuxer): Improve the demuxer
    function.
    * trans/streamio.c (demuxer): Likewise.

commit d4a2c3958c79b9582b6541585ad2a72aca7a734a
Author: Svante Signell <address@hidden>
Date:   Tue Oct 20 20:45:48 2015 +0200

    Make fakerooted access() return real access
    
    Various realworld tests would otherwise think they can write to /, while
    they actually can't.
    
    * trans/fakeroot.c (netfs_report_access): Call file_check_access instead of
    returning O_RDWR|O_EXEC when faking mode too.

commit a6185e280c1e9ca17e9bd24eff169671fe28fb1b
Author: Samuel Thibault <address@hidden>
Date:   Mon Oct 12 01:50:34 2015 +0200

    Make dir_lookup create files with user permissions enabled
    
    So we will always be able to re-open them.
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Call real_from_fake_mode() on modes
    before calling the underlying filesystem's dir_lookup.

commit 1fa0cec1b643483918933b5d6a419e77d6e16c6d
Author: Samuel Thibault <address@hidden>
Date:   Sun Oct 11 22:14:18 2015 +0200

    Make netfs_S_io_reauthenticate handle allocation errors
    
    * libnetfs/io-reauthenticate.c (netfs_S_io_reauthenticate): Loop when
    netfs_make_protid fails with EINTR, return error when it fails otherwise.

commit bd7e7ae44c78bcfe623dec8636375685c8c30be3
Author: Samuel Thibault <address@hidden>
Date:   Sun Oct 11 22:02:41 2015 +0200

    Drop duplicate port deallocation
    
    Follow-up dbfa8a3
    
    * libnetfs/io-reauthenticate.c (netfs_S_io_reauthenticate): Do not
    deallocate parameter port `rend_port' when an error will be returned.
    * libtrivfs/io-reauthenticate.c (trivfs_S_io_reauthenticate): Do not
    deallocate parameter port `rend_port' when an error will be returned.

commit bf6d5e67e86a059c1ffbde425d0f3f05fd0a0717
Author: James Clarke <address@hidden>
Date:   Tue Sep 29 18:06:46 2015 +0100

    Add missing null checks in libshouldbeinlibc
    
    The getpwnam_r and similar functions only return non-zero on error, but not
    finding the given name/UID/GID does not count as an error. When they return 
0,
    the value of the result (*result when looking at the arguments in the man 
pages)
    still needs to be checked for null.
    
    * libshouldbeinlibc/idvec-rep.c (lookup_uid): Check result for null.
    (lookup_gid): Likewise.
    * libshouldbeinlibc/idvec-verify.c (verify_passwd): Likewise.
    (verify_id): Likewise.

commit 407237da61abdc0c82d91efab392d78b7e464fb4
Author: Justus Winter <address@hidden>
Date:   Mon Oct 5 13:06:24 2015 +0200

    Update NEWS file

commit 726c58c7de0f0ab6053801a566112497391cfe32
Author: Justus Winter <address@hidden>
Date:   Mon Oct 5 13:04:45 2015 +0200

    libdiskfs: fflush stdout when pausing
    
    * libdiskfs/boot-start.c (diskfs_start_bootstrap): fflush stdout when
    pausing for /hurd/startup.

commit 7e5f8c6e0d01e4df0c70fc82101ef9b294138a41
Author: Joshua Branson <address@hidden>
Date:   Tue Sep 29 01:07:19 2015 +0200

    Minor documentation changes
    
    * .gitignore: Add generated doc/hurd.aux, doc/hurd.cp, doc/hurd.cps,
    doc/hurd.fn, doc/hurd.ky, doc/hurd.log, doc/hurd.pdf, doc/hurd.pg,
    doc/hurd.sc, doc/hurd.toc, doc/hurd.tp, doc/hurd.vr files.
    * doc/hurd.texi: Fix typo, complete explanation about sharing Mach devices.
    Complete documentation for shutdown. Replace cthreads with POSIX threads.

commit 379feba88080eb8cd731bbd64b98cc0bbf10931a
Author: Justus Winter <address@hidden>
Date:   Sun Sep 27 23:37:44 2015 +0200

    libtrivfs: deprecate old api
    
    * libtrivfs/trivfs.h (trivfs_protid_portclasses): Deprecate, and
    schedule for removal in Hurd 0.8.
    (trivfs_protid_nportclasses): Likewise.
    (trivfs_cntl_portclasses): Likewise.
    (trivfs_cntl_nportclasses): Likewise.

commit 9fe7adc2907afdd2039a67d27328ba82a884561e
Author: Justus Winter <address@hidden>
Date:   Sun Sep 27 18:55:39 2015 +0200

    libtrivfs: optimize the object lookup code
    
    * libtrivfs/mig-decls.h: Remove the specialized cases, they really
    blow up these functions that are supposed to be inlined.  Also, look
    into the dynamically allocated vectors first, because this is the
    preferred way of using libtrivfs since 1997.

commit fcf89e5bb006f71ecf5c46b7248216c3dee7e4b8
Author: Justus Winter <address@hidden>
Date:   Sun Sep 27 17:23:13 2015 +0200

    trans/proxy-defpager: convert to trivfs dynamic classes and buckets
    
    libtrivfs contains two ways of managing more than one port class and
    bucket.  There is the old way of using a statically allocated array
    with explicit length, and the new way with dynamically allocated
    vectors.
    
    Converting all users to the new way of handling multiple classes
    and/or buckets, we can simplify the code in libtrivfs.  In many cases,
    the code will be simpler and more expressive for the user.
    
    This also fixes a severe bug.  As no classes are given to
    `trivfs_startup', they are created and inserted into the dynamic
    vector of classes.  The helper function `allowed', however, used the
    first item of the previously used static array, which is NULL.  This
    circumvented the typecheck, allowing the default pager protocol to be
    spoken over control ports, likely resulting in a crash.
    
    * trans/proxy-defpager.c: Convert to dynamic classes and buckets.

commit 65e63be1f4884a0223fe51ac6ff53ed11605506a
Author: Justus Winter <address@hidden>
Date:   Sun Sep 27 16:26:03 2015 +0200

    trans/passwd: convert to trivfs dynamic classes and buckets
    
    libtrivfs contains two ways of managing more than one port class and
    bucket.  There is the old way of using a statically allocated array
    with explicit length, and the new way with dynamically allocated
    vectors.
    
    Converting all users to the new way of handling multiple classes
    and/or buckets, we can simplify the code in libtrivfs.  In many cases,
    the code will be simpler and more expressive for the user.
    
    This also fixes a mild bug.  The classes and buckets given to
    `trivfs_startup' end up in the dynamic vectors too, making the object
    lookup code use the more complicated code path.
    
    * trans/password.c: Convert to dynamic classes and buckets.

commit 125f08eea403724713cea1c79913cc7d26406a07
Author: Justus Winter <address@hidden>
Date:   Sun Sep 27 23:34:20 2015 +0200

    trans/new-fifo: convert to trivfs dynamic classes and buckets
    
    libtrivfs contains two ways of managing more than one port class and
    bucket.  There is the old way of using a statically allocated array
    with explicit length, and the new way with dynamically allocated
    vectors.
    
    Converting all users to the new way of handling multiple classes
    and/or buckets, we can simplify the code in libtrivfs.  In many cases,
    the code will be simpler and more expressive for the user.
    
    This also fixes a mild bug.  The classes and buckets given to
    `trivfs_startup' end up in the dynamic vectors too, making the object
    lookup code use the more complicated code path.
    
    * trans/new-fifo.c: Convert to dynamic classes and buckets.

commit 580eeae985138272dc0f8c24d1e7f470e31fbcc3
Author: Justus Winter <address@hidden>
Date:   Sun Sep 27 23:35:26 2015 +0200

    trans/magic: convert to trivfs dynamic classes and buckets
    
    libtrivfs contains two ways of managing more than one port class and
    bucket.  There is the old way of using a statically allocated array
    with explicit length, and the new way with dynamically allocated
    vectors.
    
    Converting all users to the new way of handling multiple classes
    and/or buckets, we can simplify the code in libtrivfs.  In many cases,
    the code will be simpler and more expressive for the user.
    
    This also fixes a severe bug.  As no classes are given to
    `trivfs_startup', they are created and inserted into the dynamic
    vector of classes.  The server function `trivfs_S_fsys_forward',
    however, used the first item of the previously used static array,
    which is NULL.  This circumvented the typecheck.
    
    * trans/magic.c: Convert to dynamic classes and buckets.

commit 419a283fa2981c47f2a117fa56f268c0ae5b5989
Author: Justus Winter <address@hidden>
Date:   Sun Sep 27 23:33:23 2015 +0200

    trans/ifsock: convert to trivfs dynamic classes and buckets
    
    libtrivfs contains two ways of managing more than one port class and
    bucket.  There is the old way of using a statically allocated array
    with explicit length, and the new way with dynamically allocated
    vectors.
    
    Converting all users to the new way of handling multiple classes
    and/or buckets, we can simplify the code in libtrivfs.  In many cases,
    the code will be simpler and more expressive for the user.
    
    This also fixes a mild bug.  The classes and buckets given to
    `trivfs_startup' end up in the dynamic vectors too, making the object
    lookup code use the more complicated code path.
    
    * trans/ifsock.c: Convert to dynamic classes and buckets.

commit 2656f79608c8db735514bafe8026211c92d06aa1
Author: Justus Winter <address@hidden>
Date:   Sun Sep 27 17:07:18 2015 +0200

    trans/crash: convert to trivfs dynamic classes and buckets
    
    libtrivfs contains two ways of managing more than one port class and
    bucket.  There is the old way of using a statically allocated array
    with explicit length, and the new way with dynamically allocated
    vectors.
    
    Converting all users to the new way of handling multiple classes
    and/or buckets, we can simplify the code in libtrivfs.  In many cases,
    the code will be simpler and more expressive for the user.
    
    This also fixes a mild bug.  The classes and buckets given to
    `trivfs_startup' end up in the dynamic vectors too, making the object
    lookup code use the more complicated code path.
    
    * trans/crash.c: Convert to dynamic classes and buckets.

commit 50a7577b022851594fd15f8c934cd3c4a37c01b6
Author: Justus Winter <address@hidden>
Date:   Sun Sep 27 17:01:37 2015 +0200

    pflocal: convert to trivfs dynamic classes and buckets
    
    libtrivfs contains two ways of managing more than one port class and
    bucket.  There is the old way of using a statically allocated array
    with explicit length, and the new way with dynamically allocated
    vectors.
    
    Converting all users to the new way of handling multiple classes
    and/or buckets, we can simplify the code in libtrivfs.  In many cases,
    the code will be simpler and more expressive for the user.
    
    This also fixes a mild bug.  The classes and buckets given to
    `trivfs_startup' end up in the dynamic vectors too, making the object
    lookup code use the more complicated code path.
    
    * pflocal/pflocal.c: Convert to dynamic classes and buckets.

commit f42c29d2172e953887542bf7fb31d2b739563887
Author: Justus Winter <address@hidden>
Date:   Sun Sep 27 18:50:11 2015 +0200

    pfinet: convert to trivfs dynamic classes and buckets
    
    libtrivfs contains two ways of managing more than one port class and
    bucket.  There is the old way of using a statically allocated array
    with explicit length, and the new way with dynamically allocated
    vectors.
    
    Converting all users to the new way of handling multiple classes
    and/or buckets, we can simplify the code in libtrivfs.  In many cases,
    the code will be simpler and more expressive for the user.
    
    This also fixes a mild bug.  The classes and buckets given to
    `trivfs_startup' end up in the dynamic vectors too, making the object
    lookup code use the more complicated code path.
    
    * pfinet/main.c: Convert to dynamic classes and buckets.
    * pfinet/options.c: Likewise.
    * pfinet/pfinet.h: Likewise.
    * pfinet/socket-ops.c: Likewise.

commit a5d384c333dbbe863c1515d6167d956b0c5b4852
Author: Justus Winter <address@hidden>
Date:   Sun Sep 27 18:54:31 2015 +0200

    exec: convert to trivfs dynamic classes and buckets
    
    libtrivfs contains two ways of managing more than one port class and
    bucket.  There is the old way of using a statically allocated array
    with explicit length, and the new way with dynamically allocated
    vectors.
    
    Converting all users to the new way of handling multiple classes
    and/or buckets, we can simplify the code in libtrivfs.  In many cases,
    the code will be simpler and more expressive for the user.
    
    This also fixes a mild bug.  The classes and buckets given to
    `trivfs_startup' end up in the dynamic vectors too, making the object
    lookup code use the more complicated code path.
    
    * exec/main.c: Convert to dynamic classes and buckets.

commit 9e8cb4acfd8971f691b35657e1f63a903f638996
Author: Justus Winter <address@hidden>
Date:   Sun Sep 27 16:20:50 2015 +0200

    libdiskfs: fflush stdout when pausing
    
    * libdiskfs/boot-start.c (start_execserver): fflush stdout when pausing.

commit 9f179b1ab674355d5afbb6d664dee2d2ac6cb89c
Author: Justus Winter <address@hidden>
Date:   Sun Sep 27 16:20:17 2015 +0200

    libdiskfs: improve error handling
    
    * libdiskfs/boot-start.c (start_execserver): Improve error handling.

commit 3d686a483df3e50904b0c92a5590416bf440e3b9
Author: Justus Winter <address@hidden>
Date:   Wed Sep 23 00:25:52 2015 +0200

    exec: add missing include
    
    * exec/main.c: Include `argz.h'.

commit 2496f1c8cb1ccbe6a42a7cab2b50a1deb5ae27d5
Author: Justus Winter <address@hidden>
Date:   Mon Sep 14 15:04:55 2015 +0200

    libports: remove unused variables
    
    * libports/inhibit-all-rpcs.c (ports_inhibit_all_rpcs): Remove unused
    variable `bucket'.
    * libports/inhibit-class-rpcs.c (ports_inhibit_class_rpcs): Remove unused
    variables `pi' and `rpc'.

commit 737f692edbd14df39cc2d91019142bd2df2ab9ea
Author: Samuel Thibault <address@hidden>
Date:   Sat Sep 19 15:07:09 2015 +0200

    Define TIME_VALUE_TO_TIMESPEC only when not defined already
    
    * exec/elfcore.c (TIME_VALUE_TO_TIMESPEC) [TIME_VALUE_TO_TIMESPEC]: Do not
    redefine macro.

commit 51f60c38c8d3cae7b0d75ba51eab5af47f6b5df7
Author: Samuel Thibault <address@hidden>
Date:   Sat Sep 12 14:08:17 2015 +0200

    Turn EADDRNOTAVAIL to more commonly-understood ECONNREFUSED
    
    Thanks Svante Signell for the investigation.
    
    * pflocal/socket.c (S_socket_connect, S_socket_send): When addr_get_sock
    returns EADDRNOTAVAIL, translate into ECONNREFUSED.

commit c6d8af579cffa9662ed1ea9e6096cccec821c6a1
Author: Samuel Thibault <address@hidden>
Date:   Sat Sep 12 12:35:59 2015 +0200

    Fix build warning
    
    * pflocal/sock.h (sock_bind): Move declaration.

commit 90ae149104ee0f55309f8fc10fecedb7b2aef472
Author: James Clarke <address@hidden>
Date:   Sat Sep 12 00:42:05 2015 +0100

    Add support for ANSI.SYS SCP/RCP escape codes
    
    This adds support for CSI s and u, which are equivalent to ESC 7 and 8,
    saving/restoring the cursor position.
    
    * console/display.c (handle_esc_bracket): Added support for CSI s and u.

commit 25ddda6354c4b70bcd8abb79770764d8ee3d6fc3
Author: Samuel Thibault <address@hidden>
Date:   Fri Sep 11 02:08:51 2015 +0200

    Fix detection of terminated dgram pflocal server
    
    * libpipe/pipe.c (_pipe_no_readers): Break pipe for connection-less pipes
    too.

commit df2b1fb2caed423b22f6d59d22f087100dd1b7d8
Author: Samuel Thibault <address@hidden>
Date:   Fri Sep 11 02:05:06 2015 +0200

    Fix closure of local server sockets
    
    Since bound socks always have a ref for their address, they would never get
    freed.  Thanks Svante Signell for the investigation.
    
    * pflocal/sock.h (sock_deref): When `sock' has one ref left and is bound to
    an address, unbound it, and thus shut it down.

commit 280e26f17906c2c2fb39c33bee797e90f5cf0c40
Author: Samuel Thibault <address@hidden>
Date:   Fri Sep 11 01:39:08 2015 +0200

    Fix sock_bind(sock,NULL) support
    
    * pflocal/sock.c (sock_bind): When addr is NULL, do not take/release its
    mutex. When old_addr is also NULL, return EINVAL. When old_addr is not NULL,
    deref old_addr instead of addr.

commit 5e8e02f53c47bcf108c64263249795f702b8b19a
Author: James Clarke <address@hidden>
Date:   Thu Sep 10 11:59:04 2015 +0100

    Install port-deref-deferred.h header for ports.h
    
    * libports/Makefile (installhdrs): Add port-deref-deferred.h for ports.h

commit 87a79cbf282e97a7e729205d7cb19182c298474a
Author: Samuel Thibault <address@hidden>
Date:   Thu Sep 10 00:23:47 2015 +0200

    Do not install libtrivfs mig stub headers
    
    They were not usable anyway.
    
    * libtrivfs/Makefile (installhdrs): Remove generated mig stub headers.

commit 70962d761a364364f2809262a299829f35c1dd1e
Author: Justus Winter <address@hidden>
Date:   Tue Sep 8 12:37:08 2015 +0200

    libshouldbeinlibc/maptime: use memory fences
    
    * libshouldbeinlibc/maptime.h (maptime_read): Use memory fences.

commit 06275e247873f44b2a5045df160bf55ec46918dc
Author: Justus Winter <address@hidden>
Date:   Tue Sep 8 14:41:39 2015 +0200

    pflocal: avoid nested function
    
    * pflocal/io.c (copy_time): Move function out of `S_io_stat', turning
    it into a static inline function.

commit 4b2e41017d621054c0ebb2acb7ceb88fa9617488
Author: Samuel Thibault <address@hidden>
Date:   Wed Sep 9 01:37:19 2015 +0200

    umount: Do not report errors on making the device go away
    
    This fixes umounting bind mounts or other mounts for which the device can
    not be made away.
    
    * utils/umount.c (do_umount): When the --force option is not passed, ignore
    errors from file_set_translator call on the device file.

commit 90b656d7e9bd288681cde6c9482d4c0ca575a431
Author: Samuel Thibault <address@hidden>
Date:   Tue Sep 8 22:49:50 2015 +0200

    Also do not realpath "proc" pseudo-device
    
    * sutils/fstab.c (fstab_find_device): Do not realpath "proc" pseudo-device.

commit 2ec3b41b65f1b7ccbe219544fd922db8fe4a0b2f
Author: Samuel Thibault <address@hidden>
Date:   Tue Sep 8 22:15:38 2015 +0200

    Make procfs accept none or proc as "device"
    
    This allows "mount none /proc -t proc" to work.
    
    * procfs/main.c (argp_parser): On ARGP_KEY_ARG, accept and ignore "none" and
    "proc".

commit f62819106ede2d407c31d1bd71a4e87c6fe60484
Author: Samuel Thibault <address@hidden>
Date:   Tue Sep 8 00:39:49 2015 +0200

    Fix opening a fifo with O_RDWR
    
    We should not wait for a writer in that case, since that will be ourself.
    
    * trans/fifo.c (open_hook): Do not wait for a writer when flags contains
    O_WRITE.

commit 7a2c17fcbb789997421725d726340301ef35d84c
Author: James Clarke <address@hidden>
Date:   Thu Aug 27 17:22:11 2015 +0100

    Fix race condition in ext2fs when remounting
    
    On some systems, ext2fs.static would regularly hang at startup, as a
    race condition meant it would process paging requests while remounting.
    To fix this, libpager has been altered to allow inhibiting and resuming
    its worker threads, and ext2fs uses this to inhibit paging while
    remounting.
    
    * console/pager.c (pager_requests): New variable.
    (user_pager_init): Updated call to pager_start_workers to use new
    pager_requests variable.
    * daemons/runsystem.sh: Removed artificial delay working around the race
    condition.
    * ext2fs/ext2fs.c (diskfs_reload_global_state): Call new
    inhibit_ext2_pager and resume_ext2_pager functions, and leave sblock as
    non-NULL so it will be munmapped.
    * ext2fs/ext2fs.h (inhibit_ext2_pager,resume_ext2_pager): New functions.
    * ext2fs/pager.c (file_pager_requests): New variable.
    (create_disk_pager): Updated call to pager_start_workers to use new
    file_pager_requests variable.
    (inhibit_ext2_pager,resume_ext2_pager): New functions.
    * fatfs/fatfs.h (inhibit_fat_pager,resume_fat_pager): New functions.
    * fatfs/pager.c (file_pager_requests): New variable.
    (create_fat_pager): Updated call to pager_start_workers to use new
    file_pager_requests variable.
    (inhibit_fat_pager,resume_fat_pager): New functions.
    * libdiskfs/disk-pager.c (diskfs_disk_pager_requests): New variable.
    (diskfs_start_disk_pager): Updated call to pager_start_workers to use
    new diskfs_disk_pager_requests variable.
    * libdiskfs/diskfs-pager.h (diskfs_disk_pager_requests): New variable.
    * libpager/demuxer.c (struct pager_requests): Renamed struct requests to
    struct pager_requests. Replaced queue with queue_in and queue_out
    pointers. Added inhibit_wakeup field.
    (pager_demuxer): Updated to use new queue_in/queue_out pointers. Only
    wake up workers if not inhibited.
    (worker_func): Updated to use new queue_in/queue_out pointers. Final
    worker thread to sleep notifies the inhibit_wakeup condition variable.
    (pager_start_workers): Added out parameter for the requests instance.
    Allocate heap space shared by both queues. Initialise new inhibit_wakeup
    condition.
    (pager_inhibit_workers,pager_resume_workers): New functions.
    * libpager/pager.h (struct pager_requests): Public forward definition.
    (pager_start_workers): Added out parameter for the requests instance.
    (pager_inhibit_workers,pager_resume_workers): New functions.
    * libpager/queue.h (queue_empty): New function.
    * storeio/pager.c (pager_requests): New variable.
    (init_dev_paging): Updated call to pager_start_workers to use new
    pager_requests variable.

commit 918a8c2ce462cea65e3e7a614f19b4f5ae4ff1e1
Author: Samuel Thibault <address@hidden>
Date:   Mon Aug 31 01:02:57 2015 +0200

    Fix build against glibc 2.21
    
    * Makeconf (CPPFLAGS): Remove -D_IO_MTSAFE_IO.
    * libthreads/lockfile.c (_IO_MTSAFE_IO): Define macro.
    (IS_IN): Define macro to 0.

commit 346ace4c2f5e020ca654541ff4b34d86faf88a4d
Author: Justus Winter <address@hidden>
Date:   Sat Apr 18 01:34:40 2015 +0200

    libdiskfs: rename `error' variable
    
    * libdiskfs/dir-lookup.c (diskfs_S_dir_lookup): Rename `error' to `err'.
    * libdiskfs/file-getcontrol.c (diskfs_S_file_getcontrol): Likewise.
    * libdiskfs/file-syncfs.c (diskfs_S_file_syncfs): Likewise.

commit e507800e47973422c080a308955f8d46edc5d706
Author: Justus Winter <address@hidden>
Date:   Sun May 24 14:37:20 2015 +0200

    libdiskfs: add missing declarations
    
    * libdiskfs/diskfs.h (diskfs_node_disknode): Add missing declaration.
    (diskfs_disknode_node): Likewise.

commit 26e0ea9356e45a2aa1810b99c4341ebf6298bf05
Author: Justus Winter <address@hidden>
Date:   Fri Jul 3 21:47:21 2015 +0200

    libdiskfs: fix typo
    
    * libdiskfs/diskfs.h: Fix typo.

commit fddacaea0c816639e5ad02e5c7237c4e53ebb5f7
Author: Justus Winter <address@hidden>
Date:   Fri Aug 14 12:41:58 2015 +0200

    libdiskfs: fix parent lookup in the name cache
    
    * libdiskfs/name-cache.c (diskfs_check_lookup_cache): Drop stray negation.

commit 714c72349f136c4b798d0df847f85340c6e76aa8
Author: Justus Winter <address@hidden>
Date:   Fri Aug 14 02:36:33 2015 +0200

    ext2fs: provide unconditional debug macro
    
    * ext2fs/ext2fs.h (ext2_debug_): New macro that unconditionally prints
    the given message.
    (ext2_debug): Use the new macro.

commit 72758b677ad240fd80b769e92f85c639860e6b97
Author: Justus Winter <address@hidden>
Date:   Wed Aug 12 16:13:07 2015 +0200

    ext2fs: improve ext2fs debugging
    
    * ext2fs/ext2fs.h (ext2_debug): Print to stderr.
    (printf): Drop declaration.

commit 68af46b57f817f84cf12bdacc32a1878e1c0fafa
Author: Samuel Thibault <address@hidden>
Date:   Fri Aug 14 15:19:53 2015 +0200

    Fake full file access only for faked nodes
    
    Otherwise some scripts may try to modify system files just because they find
    they seem to be able to.
    
    * trans/fakeroot.c (netfs_report_access): When FAKE_MODE is not set on
    `np', call file_check_access on the underlying node instead of returning
    O_RDWR|O_EXEC.

commit 8b14af6546d542878a8ea6ca08e49e0cba2e34ef
Author: Samuel Thibault <address@hidden>
Date:   Fri Aug 14 15:17:37 2015 +0200

    Make fakeroot return file types from underly fs
    
    Fakeroot does not support faking them anyway, and they may change on the
    underlying fs, e.g. when creating a local socket.
    
    * trans/fakeroot.c (netfs_validate_stat): Return S_IFMT part of st_mode as
    provided by underlying filesystem.

commit 8d862231a0016dcf40f269e73d5b189606038490
Author: Justus Winter <address@hidden>
Date:   Fri Aug 14 10:03:46 2015 +0200

    libports: clarify why we emulate protected payloads
    
    The Hurd uses protected payloads to improve the receiver lookup on the
    server side to the point that we no longer do a hash table lookup in
    the dispatch code.
    
    If the kernel does not support protected payloads, we degrade
    gracefully, do one lookup in libports' dispatching code, and emulate
    the protected payload feature to still save one hash table lookup in
    the intrans function.
    
    * libports/manage-multithread.c (ports_manage_port_operations_multithread):
    Add comment.
    * libports/manage-one-thread.c (ports_manage_port_operations_one_thread):
    Likewise.

commit 60d862ca1de4e5bd690dbc631bce15f08acffa13
Author: Justus Winter <address@hidden>
Date:   Fri Aug 14 02:32:09 2015 +0200

    pflocal: fix receiver lookup
    
    * pflocal/mig-decls.h (begin_using_addr_payload): Use
    `ports_lookup_payload'.

commit 5d1c6af9f59c7a768684a537fc32389be8cddeca
Author: Samuel Thibault <address@hidden>
Date:   Sat Aug 8 14:09:44 2015 +0200

    Print which path init tried to execv
    
    * init/init.c (main): On execv failure, print which path failed.

commit 827915ca4a4d61ae5b50596e46f5aaf7d402a2c0
Author: Justus Winter <address@hidden>
Date:   Sun Jul 12 14:46:50 2015 +0200

    exec: fix setting the name of early servers
    
    Previously, the exec server did not set the name of the servers
    started before the proc server.  Instead this was done by the startup
    server, but this was merely a workaround, missing notably the startup
    server itself.
    
    * exec/exec.c (set_name): New function.
    (do_exec): Move the code setting the name to a new function, and also
    call it if the proc server is not started yet.
    * startup/startup.c (run): Drop hack.

commit be0a34cf05c1bcbb119d91a74be44ee837861426
Author: Samuel Thibault <address@hidden>
Date:   Sat Jul 4 23:29:46 2015 +0200

    Do not keep mutex locked while waiting for authenticate loop
    
    * libdiskfs/io-reauthenticate.c (diskfs_S_io_reauthenticate): Release the 
node
    lock while blocking on the auth server and client.
    * libnetfs/io-reauthenticate.c (netfs_S_io_reauthenticate): Likewise.
    * pfinet/io-ops.c (S_io_reauthenticate): Likewise.

commit 64f99d303557e991149bd2d4e6085e9f46efb3ef
Author: Justus Winter <address@hidden>
Date:   Fri May 29 16:37:00 2015 +0200

    utils/rpcscan: new utility
    
    * utils/rpcscan.c: New file.
    * utils/Makefile: Add `rpcscan'.

commit 74fb5209f06edcf0b52bdf44ba805cb5f6cd41c8
Author: Justus Winter <address@hidden>
Date:   Sun May 31 00:26:40 2015 +0200

    utils: split-off the message id parsing
    
    * utils/rpctrace.c: Move all the code handling the message id files...
    * utils/msgids.c: ... to a new file.
    * utils/msgids.h: And add the relevand declarations.
    * utils/Makefile (SRCS): Add the new file.

commit f57ed76faed9e9e922ba93dd3bf8740974eb718a
Author: Svante Signell <address@hidden>
Date:   Wed Jun 17 00:12:49 2015 +0200

    Cope with scripts which chmod -x directories
    
    As well as other potential mode changes which are indeed supposed to still
    work as root.
    
    * trans/fakeroot.c (netfs_attempt_chmod): Always set S_IRUSR and S_IWUSR in
    real_mode, and set S_IXUSR also when this is a directory.

commit f5bc22b18e3c3042dbf7e4ecc38e046b13a2a992
Author: Esa Peuha <address@hidden>
Date:   Fri Jun 5 20:28:28 2015 +0530

    Fix ps -o %r infinite loop
    
    * libps/fmt.c (_fmt_create): When nothing at all was recognized, break out
    instead of looping.

commit 921af9c9865a3f54c388b0836f20c9ae3b30b247
Author: Justus Winter <address@hidden>
Date:   Fri Jun 5 18:31:57 2015 +0200

    libdiskfs: do not print a message on ENOMEM
    
    * libdiskfs/node-cache.c (diskfs_node_iterate): Do not print a message
    on ENOMEM.

commit f397f7c9c2a864f6496732a1406ed1f546cf3ad6
Author: Diego Nieto Cid <address@hidden>
Date:   Fri Jun 5 00:28:19 2015 -0300

    Check AWK usability when XKB is enabled
    
    * configure.ac: test whether AWK provides strtonum function.

commit db48e1651302797806f5656c856cf22e73761ea5
Author: Diego Nieto Cid <address@hidden>
Date:   Thu Jun 4 22:58:10 2015 -0300

    console-client: Fix lower range of binary search
    
    To prevent infinite recursion range checking was introduced
    as an exit condition adding two extra comparisons on each
    recursive call.
    
    By fixing the range used by the recursive call over the lower
    half of the array one can avoid penalizing successful lookups
    while still preventing infinite recursion due to `first`
    parameter being greater than `last` parameter.
    
    * console-client/xkb/kstoucs.c (find_ucs): don't remove middle from the
    lower range. Remove extra comparisons.

commit ffea85471c65fd7758e159207ae7f7a089106644
Author: Diego Nieto Cid <address@hidden>
Date:   Thu Jun 4 22:58:09 2015 -0300

    console-client: assert precondition
    
    * console-client/xkb/kstoucs.c (find_ucs): assert precondition.

commit 50da095243745f2e2a0c3f4805fe187a392832b7
Author: Justus Winter <address@hidden>
Date:   Sat May 23 12:06:35 2015 +0200

    utils/vmstat: fix integer overflow
    
    Previously, the `vmstat' utility would stop displaying the memory
    object hit ratio after some time due to an integer overflow.
    
    * utils/vmstat.c (get_memobj_hit_ratio): Fix integer overflow.

commit d8a9c7d02629049bcd451d4d9b93fdfaa7c2c8fb
Author: Justus Winter <address@hidden>
Date:   Sat May 23 12:04:36 2015 +0200

    utils/rpctrace: fix build with -O0
    
    * utils/Makefile: Link against `libshouldbeinlibc'.

commit 7410d78ed496c66a6c1d806360d1f83aa3321c01
Author: Justus Winter <address@hidden>
Date:   Sat May 23 10:51:05 2015 +0200

    console-client: fix binary search
    
    Previously, the binary search through the keysym map was incorrectly
    implemented.  This resulted in infinite loops (thanks to the compilers
    tail call optimization) or crashes (if the stack space was exhausted).
    
    * console-client/xkb/kstoucs.c (find_ucs): Fix binary search.

commit 0df1499b87688d3e9ff6132617dac1631b7733f4
Author: Justus Winter <address@hidden>
Date:   Sat May 23 10:42:36 2015 +0200

    console-client: avoid nested function
    
    * console-client/xkb/kstoucs.c (find_ucs): Previously, this function
    was a nested function for no reason at all.  Turn it into a normal
    function.

commit 805d5bb95aacfaecde4d668beecff31570eaa2ca
Author: Justus Winter <address@hidden>
Date:   Sat May 23 10:40:08 2015 +0200

    console-client: fix build with -O0
    
    * console-client/timer.h (fetch_jiffies): Make function `static inline'.

commit ef1312fb2e17d15d695dc29be9c3abc25584ba10
Author: Samuel Thibault <address@hidden>
Date:   Sat May 23 02:18:03 2015 +0530

    fakeroot: Fix reopening files after a chmod
    
    Huge thanks to Svante Signell for having tracked the bug.
    
    * trans/fakeroot.c (netfs_attempt_chmod): Make the file_chmod call
    additionally include the modes from nn->openmodes.

commit 28d8dd078448af0f964bbdf408374c08ccbcc84a
Author: Samuel Thibault <address@hidden>
Date:   Sat May 23 02:02:11 2015 +0530

    Make comment clearer
    
    * trans/fakeroot.c (check_openmodes): Make comment clearer about missing new
    openmodes.

commit bc0163aaa19ba102da3f73f30ca3f4cc11ba7a9d
Author: Samuel Thibault <address@hidden>
Date:   Sat May 23 00:33:04 2015 +0530

    Make sure to record only RWX open modes
    
    Thanks Svante Signell for the investigation and proposed patch.
    
    * trans/fakeroot.c (new_node): Assert that `openmodes' includes only
    O_RDWR|O_EXEC
    (check_openmodes): Likewise with `newmodes'.
    (netfs_S_dir_lookup): Keep only O_RDWR|O_EXEC from `flags' when calling
    new_node.

commit 3ffb892a5db5ad64b87261fa01478401806894cf
Author: Justus Winter <address@hidden>
Date:   Tue May 19 18:52:58 2015 +0200

    fatfs: fix error handling
    
    * fatfs/dir.c (diskfs_dirrewrite_hard): Fix error handling.

commit e840329de670757720cec729556b9b1f7d655ab5
Author: Justus Winter <address@hidden>
Date:   Tue May 19 18:12:20 2015 +0200

    libdiskfs: fix renaming of directories
    
    Previously, file permissions and ownership of the target directory
    were ignored when renaming a directory:
    
        % mkdir a b
        % chmod 555 a
        % mv b a
        % ls a
        b
    
    * libdiskfs/dir-renamed.c (diskfs_rename_dir): Fix error handling.

commit 09964a022f1c1e969d8258c7a38879b0fa983402
Author: Svante Signell <address@hidden>
Date:   Thu May 14 01:36:15 2015 +0200

    Fix creating named sockets inside fakeroot-hurd
    
    * trans/fakeroot.c (netfs_set_translator): New function.

commit b497f1613187c142ad6d0b76761a49811c37da80
Author: Justus Winter <address@hidden>
Date:   Thu Apr 16 16:12:05 2015 +0200

    fatfs: port to libdiskfs' node cache
    
    * fatfs/inode.c: Drop all cache-related code.
    (diskfs_user_make_node): New function.
    (diskfs_cached_lookup_in_dirbuf): Reimplement using the `lookup_context'.
    (read_node): Rename to diskfs_user_read_node and adopt accordingly.
    (diskfs_try_dropping_softrefs): Rename to 
`diskfs_user_try_dropping_softrefs'.
    (diskfs_node_reload): Pass context to `diskfs_user_read_node'.
    (diskfs_alloc_node): Pass `dir' via context to `diskfs_user_read_node'.
    * fatfs/fatfs.h (struct disknode): Drop fields `hnext', `hprevp'.
    (struct lookup_context): New definition.
    (ifind): Drop declaration.
    * fatfs/dir.c (diskfs_lookup_hard): Adjust accordingly.
    * fatfs/main.c (fetch_root): Likewise.

commit 4266bb02b1f3342d3fc4920c07c71592a14acdd9
Author: Justus Winter <address@hidden>
Date:   Wed Apr 15 16:26:31 2015 +0200

    isofs: port to libdiskfs' node cache
    
    * isofs/inode.c: Drop all cache-related code.
    (diskfs_user_make_node): New function.
    (calculate_file_start): Check for `record' being null.
    (cache_id): New function.
    (read_node): Rename to diskfs_user_read_node and adopt accordingly.
    (diskfs_try_dropping_softrefs): Rename to diskfs_user_try_dropping_softrefs.
    * isofs/isofs.h (struct lookup_context): New definition.
    (cache_id): New declaration.
    * isofs/lookup.c (diskfs_lookup_hard): Adjust accordingly.
    * isofs/main.c (fetch_root): Likewise.

commit c234e34ad80801acd902c6d4892a7722fd084a87
Author: Justus Winter <address@hidden>
Date:   Wed Apr 15 13:17:06 2015 +0200

    libdiskfs: implement a node cache
    
    Previously, all users of libdiskfs implemented a node cache on their
    own.  Move the node cache from ext2fs into libdiskfs.  We preserve the
    previous API by marking all functions that we pull from ext2fs as
    weak, so that users like tmpfs can still implement their own node
    cache.
    
    * ext2fs/dir.c (diskfs_lookup_hard): Adjust accordingly.
    * ext2fs/ext2fs.c (main): Don't call `inode_init'.
    * ext2fs/ext2fs.h (struct disknode): Drop `hnext', `hprevp'.
    * ext2fs/inode.c: Move the node cache into diskfs.
    (diskfs_user_make_node): New function.
    (diskfs_try_dropping_softrefs): Rename to 
`diskfs_user_try_dropping_softrefs'.
    (read_node): Rename to `diskfs_user_read_node'.  Also move a chunk of
    code dealing with generations from `diskfs_cached_lookup' here.
    * libdiskfs/Makefile (OTHERSRCS): Add `node-cache.c'.
    * libdiskfs/diskfs.h (struct node): Add `hnext', `hprevp'.
    Amend existing comments, add forward declarations.
    * libdiskfs/node-cache.c: New file.

commit bf06e6535f7e00a3711978fa7835a3394b82b547
Author: Justus Winter <address@hidden>
Date:   Tue Apr 14 22:37:31 2015 +0200

    ext2fs: use fat nodes
    
    Use `diskfs_make_node_alloc' to allocate both the node and the
    disknode in a continuous chunk of memory.  This increases locality and
    reduces the pressure on the memory allocator.
    
    * ext2fs/inode.c: Use `diskfs_node_disknode' to access the disknode.
    (diskfs_cached_lookup): Use `diskfs_make_node_alloc' to allocate the
    node.
    (diskfs_node_norefs): Only free `np'.
    * ext2fs/dir.c: Use `diskfs_node_disknode' to access the disknode.
    * ext2fs/ext2fs.h: Likewise.
    * ext2fs/getblk.c: Likewise.
    * ext2fs/ialloc.c: Likewise.
    * ext2fs/pager.c: Likewise.
    * ext2fs/truncate.c: Likewise.

commit e00a105ff35ee53bfd6caeb6f29c47d8ed7cf3ab
Author: Justus Winter <address@hidden>
Date:   Fri Apr 17 17:44:07 2015 +0200

    libdiskfs: declare all inline functions as `extern inline'
    
    * libdiskfs/diskfs.h (diskfs_node_disknode, diskfs_disknode_node):
    Declare functions as `extern inline' so that we can use them in other
    functions declared as `extern inline'.

commit 499bcd54f132464fcec55583fcf433fbe6ce4e3b
Author: Justus Winter <address@hidden>
Date:   Tue Apr 14 21:24:48 2015 +0200

    libdiskfs: fix node initialization
    
    * libdiskfs/node-make.c (init_node): Initialize flag `author_tracks_uid'.

commit 6d9601c56f2dd29cfbcf8dee30a2fff24a39df17
Author: Justus Winter <address@hidden>
Date:   Tue Apr 14 21:18:31 2015 +0200

    libdiskfs: drop unused fields from struct node
    
    * libdiskfs/diskfs.h (struct node): Drop unused fields from struct
    node.

commit cfe76b64ba01edcac75f751aba1766ade2e54c7d
Author: Justus Winter <address@hidden>
Date:   Tue Apr 14 21:17:19 2015 +0200

    libdiskfs: make struct node more compact
    
    * libdiskfs/diskfs.h (struct node): Turn flags into a bit field.

commit c16eed2cb64089bf7d958db0fe85352f4ceefb4d
Author: Justus Winter <address@hidden>
Date:   Wed May 14 11:19:35 2014 +0200

    libdiskfs: lock-less reference counting of nodes
    
    * libdiskfs/diskfs.h (struct node): Use refcounts_t for reference counting.
    (diskfs_node_refcnt_lock): Remove.
    (diskfs_node_norefs,diskfs_drop_node): Change comments accordingly.
    * libdiskfs/init-init.c: Adjust accordingly.
    * libdiskfs/node-drop.c: Likewise.
    * libdiskfs/node-make.c: Likewise.
    * libdiskfs/node-nput.c: Likewise.
    * libdiskfs/node-nputl.c: Likewise.
    * libdiskfs/node-nref.c: Likewise.
    * libdiskfs/node-nrefl.c: Likewise.
    * libdiskfs/node-nrele.c: Likewise.
    * libdiskfs/node-nrelel.c: Likewise.
    * ext2fs/inode.c: Likewise.
    * fatfs/inode.c: Likewise.
    * isofs/inode.c: Likewise.
    * tmpfs/node.c: Likewise.
    * doc/hurd.texi: Likewise.

commit 8c050fb080c6e1981dc8e5a97a2313cd24e9b4b4
Author: Justus Winter <address@hidden>
Date:   Tue May 13 15:35:42 2014 +0200

    tmpfs: use a seperate lock to protect all_nodes
    
    Previously, tmpfs used diskfs_node_refcnt_lock to serialize access to
    the all_nodes and some other related global state related to memory
    consumption.
    
    Use a separate lock to protect all_nodes, and atomic operations to
    access the state related to memory consumption. Adjust the reference
    counting accordingly.  Every node in the all_nodes carries a light
    reference.  When we are asked to give up that light reference, we
    reacquire our lock momentarily to check whether someone else
    reacquired a reference through the all_nodes.
    
    * tmpfs/tmpfs.h (num_files, tmpfs_space_used): Use atomic operations
    for these variables.
    (adjust_used): Use atomic operations.
    (get_used): New convenience function to atomically retrieve
    tmpfs_space_used.
    * tmpfs/node.c (all_nodes_lock): New lock.
    (diskfs_alloc_node): Use a separate lock to protect all_nodes.
    Adjust the reference counting accordingly.
    (diskfs_free_node): Likewise.
    (diskfs_cached_lookup):Likewise.
    (diskfs_node_iterate): Likewise.
    (diskfs_node_norefs): Do not remove the node from all_nodes.  This
    actually looks like a mistake, I do not know why they did that here as
    well as in diskfs_free_node.
    (diskfs_try_dropping_softrefs): Check whether someone reacquired a
    reference, and if so hold on to our light reference.
    (diskfs_grow): Use atomic operations.
    * tmpfs/tmpfs.c (diskfs_set_statfs): Likewise.

commit f4823c00581eb91e5b42169405e641463256bbfa
Author: Justus Winter <address@hidden>
Date:   Tue May 13 15:16:31 2014 +0200

    isofs: use a seperate lock to protect node_cache
    
    Previously, isofs used diskfs_node_refcnt_lock to serialize access to
    the node_cache.
    
    Use a separate lock to protect node_cache.  Adjust the reference
    counting accordingly.  Every node in the node_cache carries a light
    reference.  When we are asked to give up that light reference, we
    reacquire our lock momentarily to check whether someone else
    reacquired a reference through the node_cache.
    
    * isofs/inode.c (nodecache_lock): New lock.
    (inode_cache_find): Use a separate lock to protect node_cache.
    Adjust the reference counting accordingly.
    (diskfs_cached_lookup): Likewise.
    (load_inode): Likewise.
    (cache_inode): Update comment accordingly.
    (diskfs_node_iterate): Likewise.
    (diskfs_node_norefs): Move the code removing the node from node_cache...
    (diskfs_try_dropping_softrefs): ... here, where we check whether
    someone reacquired a reference, and if so hold on to our light
    reference.

commit e17366f09a6003dcc95633ce312aa3753f056e28
Author: Justus Winter <address@hidden>
Date:   Tue May 13 15:14:53 2014 +0200

    fatfs: use a seperate lock to protect nodehash
    
    Previously, fatfs used diskfs_node_refcnt_lock to serialize access to
    the nodehash.
    
    Use a separate lock to protect nodehash.  Adjust the reference
    counting accordingly.  Every node in the nodehash carries a light
    reference.  When we are asked to give up that light reference, we
    reacquire our lock momentarily to check whether someone else
    reacquired a reference through the nodehash.
    
    * fatfs/inode.c (nodecache_lock): New lock.
    (diskfs_cached_lookup): Use a separate lock to protect nodehash.
    Adjust the reference counting accordingly.
    (ifind): Likewise.
    (diskfs_node_iterate): Likewise.
    (diskfs_node_norefs): Move the code removing the node from nodehash...
    (diskfs_try_dropping_softrefs): ... here, where we check whether
    someone reacquired a reference, and if so hold on to our light
    reference.

commit 4166312a45357c2ff11b00219dfb83b7475ac4b1
Author: Justus Winter <address@hidden>
Date:   Tue May 13 13:09:15 2014 +0200

    ext2fs: use a seperate lock to protect nodehash
    
    Previously, ext2fs used diskfs_node_refcnt_lock to serialize access to
    the nodehash.
    
    Use a separate lock to protect nodehash.  Adjust the reference
    counting accordingly.  Every node in the nodehash carries a light
    reference.  When we are asked to give up that light reference, we
    reacquire our lock momentarily to check whether someone else
    reacquired a reference through the nodehash.
    
    * ext2fs/inode.c (nodecache_lock): New lock.
    (diskfs_cached_lookup): Use a separate lock to protect nodehash.
    Adjust the reference counting accordingly.
    (ifind): Likewise.
    (diskfs_node_iterate): Likewise.
    (diskfs_node_norefs): Move the code removing the node from nodehash...
    (diskfs_try_dropping_softrefs): ... here, where we check whether
    someone reacquired a reference, and if so hold on to our light
    reference.

commit b8ffab7c38f3ede424b8a07553d6ee6b16abb85b
Author: Thomas Schwinge <address@hidden>
Date:   Fri Apr 10 13:04:33 2015 +0200

    GNU Hurd 0.6.
    
    * configure.ac (AC_INIT): Set version to 0.6.
    * NEWS: Finalize for 0.6.

commit 7940555177699048a111043d22b00969445cba80
Author: Justus Winter <address@hidden>
Date:   Wed Apr 8 00:19:05 2015 +0200

    NEWS: mention that the init server has been split
    
    * NEWS: Mention that the init server has been split into the startup
    server and the init server.

commit 626596bcb027313f39069be94f85f3f523feb365
Author: Justus Winter <address@hidden>
Date:   Tue Apr 7 14:45:26 2015 +0200

    procfs: fix runtime option parsing
    
    * procfs/main.c (netfs_runtime_argp): Actually use the runtime option
    parser.

commit 4241dd5673566a61add85bd9eb52d4ae7db2750a
Author: Justus Winter <address@hidden>
Date:   Sat Nov 23 16:12:55 2013 +0100

    libports: use protected payloads to optimize the object lookup
    
    * NEWS: Mention protected payloads.
    * libports/Makefile (SRCS): Add `port-deref-deferred.c'.
    * libports/create-internal.c (_ports_create_port_internal): Set the
    protected payload to the objects address.
    * libports/import-port.c (ports_import_port): Likewise.
    * libports/reallocate-from-external.c (ports_reallocate_from_external):
    Likewise.
    * libports/reallocate-port.c (ports_reallocate_port): Likewise.
    * libports/transfer-right.c (ports_transfer_right): Likewise.
    * libports/manage-multithread.c (ports_manage_port_operations_multithread):
    Use the protected payload for the object lookup if provided.  Add
    thread pool management calls.
    * libports/manage-one-thread.c (ports_manage_port_operations_one_thread):
    Likewise.
    * libports/destroy-right.c (ports_destroy_right): Defer the
    dereferencing of outstanding send rights to avoid a port_info
    use-after-free.
    * libports/port-deref-deferred.c: New file.
    * libports/port-deref-deferred.h: Likewise.
    * libports/ports.h (struct port_bucket): New field `threadpool'.
    (ports_lookup_payload): Check `port_right'.

commit 785f4aea18b5705e63609001d2aa12871a774804
Author: Justus Winter <address@hidden>
Date:   Tue Apr 7 12:53:03 2015 +0200

    procfs: fix argument parsing
    
    * procfs/main.c (argp_parser): Fix argument parsing.

commit d293e13f756d44cad5a36c15e6f54ae0b6b71c81
Author: Samuel Thibault <address@hidden>
Date:   Thu Mar 5 01:57:25 2015 +0100

    Fix space style

commit fb8c531ddeef55c8581d3882bd1b1f501d980a30
Author: Justus Winter <address@hidden>
Date:   Mon Dec 15 11:53:26 2014 +0100

    libports: avoid acquiring global lock in message dispatch
    
    * libports/interrupt-operation.c (ports_S_interrupt_operation): Update
    `cancel_threshold' using atomic operations.
    * libports/manage-multithread.c (internal_demuxer): Avoid taking the lock.
    * libports/ports.h (struct port_info): Mention that one needs atomic
    operations to access `cancel_threshold'.

commit eceeaeb5a2d40875fd432148b9cf26b41497811d
Author: Justus Winter <address@hidden>
Date:   Sat Feb 14 00:00:24 2015 +0100

    TODO: drop obsolete item
    
    * TODO (libpager): Drop item trying to prevent thread storms.  We
    dealt with that in a much nicer way.  Nowadays we use a fixed number
    of threads in libpager.

commit e04b779d1cf875010befd37f1a0b86e132d077a6
Author: Justus Winter <address@hidden>
Date:   Sun Feb 8 01:32:33 2015 +0100

    startup: add more error handling
    
    * startup/startup.c (launch_core_servers): Add more error handling.

commit f8163aefa589a91ef9f31da2aafe1eb326a7d9b0
Author: Samuel Thibault <address@hidden>
Date:   Mon Feb 2 11:17:13 2015 +0100

    Explicit the keymap compatibility flags
    
    Since "default" is not provided any more by xkb
    
    * console-client/xkb/xkb-data/keymap/hurd: Replace "default"
    xkb_compatibility by
    "basic+mousekeys+accessx(basic)+misc+iso9995+level5+caps(caps_lock)" for all
    keymaps.

commit 2be6756dbbdd400b1734ee014aa1518201271482
Author: Samuel Thibault <address@hidden>
Date:   Mon Feb 2 11:10:48 2015 +0100

    Allow dhcp trafic and configuration
    
    2007-10-14  Christian Dietrich  <address@hidden>
    
        * options.c (options): Marked -a, -g -m, -p, -A, -G
        OPTION_ARG_OPTIONAL.
        (parse_interface_copy_device): New function.
        (parse_opt): When selecting another interface with -i
        set the options from e.g. a prior fsysopts call as default
        values. For -a, -g, -p, -g, -A, -G set the optional
        argument as value. When there is no argument, delete the
        value (e.g. unset default gateway). Delete delete default gateways
        only if the set gateway is on an interface modified in this call.
        Add always an route for dhcp packages on all devices. By doing
        this we can send dhcp renew packages.
        (trivfs_append_args): Add --gateway only once.
    
    2007-10-14  Marco Gerards  <address@hidden>
    
            * options.c (parse_opt): Add the route for `0.0.0.0' so broadcasting
            works.
    
        * linux-src/net/ipv4/devinet.c (inet_insert_ifa) [_HURD_]: Don't
        fail when the address is `0.0.0.0'.

commit af81a0728e712fb3d4bec3a0ecfc7dff7fff40b8
Author: Samuel Thibault <address@hidden>
Date:   Mon Feb 2 10:55:58 2015 +0100

    Remove unimplemented -s option
    
    * pfinet/options.c (options): Remove 's' case.

commit ccee70dd9fc20a5b39c59b0a7dc8c72e2536ede9
Author: Justus Winter <address@hidden>
Date:   Tue Jan 20 20:10:08 2015 +0100

    utils/rpctrace: fix notification port handling
    
    * utils/rpctrace.c (new_receiver_info): Fix handling of old
    notification port.

commit 508221b49ae825501882e228b18e4586e59e88b0
Author: Justus Winter <address@hidden>
Date:   Tue Jan 20 20:01:43 2015 +0100

    console: fix error and notification port handling
    
    This fixes a deallocation of an invalid port notably seen on system
    shutdown.
    
    * console/display.c (free_modreqs): Handle errors of
    `mach_port_request_notification' and check whether the old
    notification port was valid.
    (do_mach_notify_msg_accepted): Likewise.
    (display_notice_filechange): Likewise.

commit 1ad178fd00b675d686c2560829e9a10c5cb44f6f
Author: Justus Winter <address@hidden>
Date:   Wed Jan 7 16:05:48 2015 +0100

    proc: call `startup_essential_task' earlier
    
    Previously, the proc server did not call `startup_essential_task'
    until it got the message port of the startup server using
    `proc_setmsgport'.
    
    Now that we have `/servers/startup', we can do this in main, before we
    start our message service loop.
    
    A complication arises because the traditional startup server is
    single-threaded.  Handle this by tweaking startup not to bind itself
    to `/servers/startup' before it is ready.
    
    * proc/main.c (main): Try to lookup `/servers/startup' and send the
    message here, or...
    * proc/msg.c (S_proc_setmsgport): ... fall back to the old way here.
    * proc/proc.h (startup_fallback): New variable.
    * startup/startup.c (main): Move code installing ourself on 
`/servers/startup'
    (install_as_translator): ... here.
    (launch_core_servers): And use it here, just before we reply to 
`/hurd/auth'.

commit 40b354e4cc67f1fedf9d4c2ce8d050a9ac68a643
Author: Justus Winter <address@hidden>
Date:   Wed Jan 7 16:00:06 2015 +0100

    auth: remove implicit assumption about the bootstrap process
    
    The current code assumes that it can speak the startup protocol over
    its bootstrap port.
    
    * auth/auth.c (main): Generalize by trying to use `/servers/startup'
    before falling back to the bootstrap port.

commit 2d371a0b01054843f294a6c5ff401bd2093604a4
Author: Justus Winter <address@hidden>
Date:   Fri Jan 2 21:53:08 2015 +0100

    auth: simplify expression
    
    * auth/auth.c (S_auth_{user,server}_authenticate): Simplify expression.

commit 361c586e263ebf4a0531045029c3cf076dbcb847
Author: Justus Winter <address@hidden>
Date:   Fri Jan 9 11:06:52 2015 +0100

    startup: give the tasks we create a name
    
    * startup/startup.c (run): Name the tasks we start.

commit 1901e7aa92ccd021d73f32aa97661428d7142cd4
Author: Justus Winter <address@hidden>
Date:   Sat Jan 3 16:21:24 2015 +0100

    libports: silence pointless error message
    
    * libports/manage-multithread.c (adjust_priority): Silence pointless
    error message.

commit e2b1c5c20ff1ac0017e7ac8ef853ce3326210077
Author: Justus Winter <address@hidden>
Date:   Fri Jan 16 10:10:42 2015 +0100

    libdiskfs: fix port leak
    
    * libdiskfs/boot-start.c (get_console): Deallocate `device_master'.

commit 106287af864c01f20c12d1a0a78a2469a27adc03
Author: Justus Winter <address@hidden>
Date:   Sat Jan 17 14:23:34 2015 +0100

    libfshelp: improve error handling
    
    * libfshelp/start-translator-long.c (fshelp_start_translator_long):
    Once we have a task, go to `lose_task' so that we do not leave hosed
    tasks around.

commit c0c69366ce4717fb8c5db370ac42ab787782e28c
Author: Justus Winter <address@hidden>
Date:   Sun Jan 4 13:31:49 2015 +0100

    random: fix typo
    
    * random/gnupg-random.c (read_pool): Fix typo in comment.

commit 87fad50310f2bd0dcc990e80e23b09768918cf5b
Author: Samuel Thibault <address@hidden>
Date:   Sat Jan 3 17:44:01 2015 +0100

    Backport Linux changes for proper TCP EOF handling
    
    Notably when remote eagerly sends a RST: we want to return EOF to the
    application, not EPIPE.
    
    * pfinet/linux-src/net/ipv4/tcp_output.c (tcp_connect): Set sk->done to 0.
    * pfinet/linux-src/net/ipv4/tcp_input.c (tcp_fin): Set RCV_SHUTDOWN, and
    sk->done to 1.
    * pfinet/linux-src/net/ipv4/tcp.c (tcp_recv_urg): Only return ENOTCONN when
    we never actually connect.  Always return 0 when reception is closed.
    (tcp_recvmsg): When any data is available, ignore errors and EOF.  When no
    data is available, first check for reception being closed, then for errors.

commit 29a30c44bb8cecb341df211bcb3b330f515c9003
Author: Stefan Weil <address@hidden>
Date:   Sat Jan 3 10:16:12 2015 +0100

    procfs: Fix typos in comments (found by codespell)
    
    Signed-off-by: Stefan Weil <address@hidden>

commit c7441b5eb9bd4327845a1704e07903bacff08962
Author: Stefan Weil <address@hidden>
Date:   Sat Jan 3 10:16:11 2015 +0100

    libshouldbeinlibc: Fix typo in local variable name
    
    Signed-off-by: Stefan Weil <address@hidden>

commit bd1d3a48415cb6a7c24c45a899ce38b3ce34956d
Author: Stefan Weil <address@hidden>
Date:   Sat Jan 3 10:16:09 2015 +0100

    misc: Fix typos in comments (found by codespell)
    
    Signed-off-by: Stefan Weil <address@hidden>

commit 695e606f7fd8940c2b260670a89ae2a6cc82b9f4
Author: Stefan Weil <address@hidden>
Date:   Sat Jan 3 10:16:08 2015 +0100

    console: Fix typos in comments
    
    Signed-off-by: Stefan Weil <address@hidden>

commit d7fa37dd8e08a6179c97b3cdeea2405016304272
Author: Stefan Weil <address@hidden>
Date:   Sat Jan 3 10:16:07 2015 +0100

    console-client: Fix typos in comments
    
    Signed-off-by: Stefan Weil <address@hidden>

commit 795d45e2a4ab58dd169e1febfd82b8e3b4601d9e
Author: Stefan Weil <address@hidden>
Date:   Sat Jan 3 10:16:06 2015 +0100

    aclocal.m4, configure.ac: Fix typos and grammar in comment (found by 
codespell)
    
    Signed-off-by: Stefan Weil <address@hidden>

commit 8f5e94f48e7668e3c5dcaa1cde1b8f591c05bb58
Author: Stefan Weil <address@hidden>
Date:   Sat Jan 3 10:16:10 2015 +0100

    lib*: Fix typos in comments (found by codespell)
    
    Signed-off-by: Stefan Weil <address@hidden>

commit 2a340dd3310d0f67a48d6057214e54416d173265
Author: Samuel Thibault <address@hidden>
Date:   Fri Dec 26 14:23:10 2014 +0100

    Revert "Make sure to free content dir in procfs"
    
    This reverts commit 5fe615a4d66f4dea48812ed9e4f250010a8f9298.

commit 5fe615a4d66f4dea48812ed9e4f250010a8f9298
Author: Lancelot SIX <address@hidden>
Date:   Thu Dec 25 22:01:53 2014 +0100

    Make sure to free content dir in procfs
    
    In procfs/netfs.c:netfs_get_dirents, make sure to free the memory
    allocated with the "get_contents" callback of nodes.

commit 8e3c26e98bcf30dd73a8c64bb9aab08e2f32c1f8
Author: Samuel Thibault <address@hidden>
Date:   Fri Dec 19 00:12:07 2014 +0100

    Avoid ./ components in mtab output
    
    * libdiskfs/dir-lookup.c (diskfs_S_dir_lookup): Match "." path as being the
    root directory.
    * libnetfs/dir-lookup.c (netfs_S_dir_lookup): Likewise.

commit 89c2cbb53b8ad14ae9d5d06ec230a696bea4a6ba
Author: Justus Winter <address@hidden>
Date:   Fri Dec 12 17:09:07 2014 +0100

    hurd: make the protected payload changes less intrusive
    
    The changes to `hurd_types.defs' caused the glibc build to fail.
    Guard the problematic parts with `HURD_SERVER' similar how it is done
    in GNU Mach.
    
    * Makeconf: Define `HURD_SERVER' when preprocessing the RPC
    definitions for the server side.
    * hurd/hurd_types.defs: Guard problematic parts with `HURD_SERVER'.

commit b541a7c513aafa636a8ce0903aab4b72504bc0ed
Author: Samuel Thibault <address@hidden>
Date:   Thu Dec 11 18:47:09 2014 +0100

    Fix inclusion loop between hurd_types.defs and hurd/signal.h>
    
    * boot/Makefile (MIGSFLAGS): Add -DHURD_DEFAULT_PAYLOAD_TO_PORT=1.
    * mach-defpager/Makefile (MIGSFLAGS): Likewise.
    * hurd/hurd_types.defs: Do not include <hurd/ports.h>.

commit 82a87d043498eeacb7e4f3edc85d1b7c424ea853
Author: Justus Winter <address@hidden>
Date:   Tue Dec 2 00:20:51 2014 +0100

    Replace `bcopy' with `memcpy' or `memmove' as appropriate
    
    * ext2fs/inode.c: Replace `bcopy' with `memcpy' or `memmove' as
    appropriate.
    * ext2fs/pager.c: Likewise.
    * isofs/lookup.c: Likewise.
    * isofs/main.c: Likewise.
    * isofs/rr.c: Likewise.
    * libdiskfs/file-get-trans.c: Likewise.
    * libiohelp/return-buffer.c: Likewise.
    * libpager/pagemap.c: Likewise.
    * libpipe/pq.c: Likewise.
    * libpipe/pq.h: Likewise.
    * libstore/unzipstore.c: Likewise.
    * mach-defpager/default_pager.c: Likewise.
    * pfinet/ethernet.c: Likewise.
    * pfinet/tunnel.c: Likewise.
    * storeio/dev.c: Likewise.

commit 0a4ada8d40fb687a659161ff7e0d1d0994264402
Author: Justus Winter <address@hidden>
Date:   Mon Dec 1 23:55:25 2014 +0100

    Replace `bzero' with `memset'
    
    For reference, this patch was created using the following semantic
    patch, and then manually applying the change in all functions
    containing nested functions, as those are not supported by Coccinelle.
    
    @@
    expression A, B;
    @@
    
    - bzero (A, B)
    + memset (A, 0, B)
    
    * auth/auth.c: Replace `bzero' with `memset'.
    * boot/boot.c: Likewise.
    * defpager/defpager.c: Likewise.
    * exec/exec.c: Likewise.  Also, drop `safe_bzero' and just use
    `hurd_safe_memset' directly.
    * ext2fs/ext2fs.c: Likewise.
    * ext2fs/getblk.c: Likewise.
    * ext2fs/pager.c: Likewise.
    * fatfs/pager.c: Likewise.
    * ftpfs/dir.c: Likewise.
    * ftpfs/netfs.c: Likewise.
    * isofs/inode.c: Likewise.
    * isofs/pager.c: Likewise.
    * libdiskfs/file-getfh.c: Likewise.
    * libdiskfs/file-statfs.c: Likewise.
    * libfshelp/fetch-root.c: Likewise.
    * libfshelp/start-translator.c: Likewise.
    * libftpconn/create.c: Likewise.
    * libftpconn/open.c: Likewise.
    * libftpconn/unix.c: Likewise.
    * libpipe/pipe.c: Likewise.
    * libps/procstat.c: Likewise.
    * libps/spec.c: Likewise.
    * libshouldbeinlibc/cacheq.c: Likewise.
    * libshouldbeinlibc/idvec.c: Likewise.
    * libshouldbeinlibc/ugids.c: Likewise.
    * libstore/argp.c: Likewise.
    * libstore/enc.c: Likewise.
    * libstore/kids.c: Likewise.
    * libthreads/alpha/thread.c: Likewise.
    * libtreefs/fsys.c: Likewise.
    * libtrivfs/file-statfs.c: Likewise.
    * mach-defpager/default_pager.c: Likewise.
    * pfinet/glue-include/asm/uaccess.h: Likewise.
    * pfinet/io-ops.c: Likewise.
    * pfinet/options.c: Likewise.
    * pfinet/socket.c: Likewise.
    * pfinet/timer-emul.c: Likewise.
    * pflocal/io.c: Likewise.
    * startup/startup.c: Likewise.
    * storeio/storeio.c: Likewise.
    * sutils/fstab.c: Likewise.
    * usermux/usermux.c: Likewise.
    * utils/fakeauth.c: Likewise.
    * utils/frobauth.c: Likewise.
    * utils/login.c: Likewise.
    * utils/x.c: Likewise.

commit 51c2bd7408b0a4ee73ecd1928d4c17d4fafb1ec2
Author: Justus Winter <address@hidden>
Date:   Mon Dec 8 12:53:06 2014 +0100

    ext2fs: tune the size of the inode cache
    
    The node cache uses a fixed number of buckets giving it a linear
    access complexity, although with a small constant factor.  Paper over
    this issue by increasing the number of buckets.
    
    * ext2fs/inode.c (INOHSZ): Increase from 512 to 8192 entries.

commit 6a2dec41b11492b3d6295e9546934f3cf10e6e74
Author: Justus Winter <address@hidden>
Date:   Sun Dec 7 17:57:14 2014 +0100

    libpager: use libports notification functions
    
    Now that we do not use sequence numbers anymore, we can simply use
    libports notification server functions.
    
    * libpager/Makefile (SRCS): Drop `no-senders.c', and `notify-stubs.c'.
    (OBJS): Drop `notifyServer.o'.
    * libpager/demuxer.c (pager_demuxer): Use libports server functions.
    * libpager/mig-mutate.h: Drop all notification mutators.
    * libpager/no-senders.c: Remove file.
    * libpager/notify-stubs.c: Likewise.

commit f878de5006045c849415afffaffc909458b5f6de
Author: Justus Winter <address@hidden>
Date:   Sun Dec 7 17:22:31 2014 +0100

    libpager: remove the `seqno' parameters
    
    * libpager/Makefile (MIGSFLAGS): Drop `-DSEQNOS'.
    * libpager/priv.h (struct pager): Drop fields `seqno' and `waitingforseqno'.
    * libpager/chg-compl.c: Adopt accordingly.
    * libpager/data-request.c: Likewise.
    * libpager/data-return.c: Likewise.
    * libpager/data-unlock.c: Likewise.
    * libpager/demuxer.c: Likewise.
    * libpager/lock-completed.c: Likewise.
    * libpager/no-senders.c: Likewise.
    * libpager/notify-stubs.c: Likewise.
    * libpager/object-init.c: Likewise.
    * libpager/object-terminate.c: Likewise.
    * libpager/pager-create.c: Likewise.
    * libpager/stubs.c: Likewise.

commit 808073c49814b415b7ad6226a3e8c95bb1dbc277
Author: Justus Winter <address@hidden>
Date:   Wed Nov 12 15:30:18 2014 +0100

    hurd: add `proc_make_task_namespace'
    
    Add a new RPC to the process protocol to create task namespaces.
    These can be used by an unprivileged process to claims the
    responsibility to manage all tasks in this namespace.  Any task
    created in this namespace will automatically be declared a child of
    the root process, and a `mach_notify_new_task' message is sent to a
    given port.  If the root process dies, the proc server will terminate
    all tasks in the namespace.
    
    * hurd/process.defs (proc_make_task_namespace): New RPC.

commit d14748b5888d697583b6dc9df2feed1f09f92a4c
Author: Justus Winter <address@hidden>
Date:   Tue Nov 11 21:23:42 2014 +0100

    proc: implement `proc_make_task_namespace'
    
    * proc/proc.h (struct proc): Add field `p_task_namespace'.
    * proc/mgt.c (S_proc_child): Propagate `p_task_namespace' to child.
    (allocate_proc): Initialize `p_task_namespace'.
    (namespace_terminate): New function.
    (process_has_exited): Reparent children of dead tasks in the namespace
    to the root process.  Terminate all tasks if the root process dies.
    Reap dead tasks.
    (S_mach_notify_new_task): For newly created tasks thats parent is in a
    namespace, call S_proc_child and forward the `mach_notify_new_task'
    message.
    (S_proc_make_task_namespace): New function.

commit 46b2c2b071f31893c9ce9548537e34747b2941d6
Author: Justus Winter <address@hidden>
Date:   Mon Sep 16 16:09:05 2013 +0200

    proc: register for new task notifications
    
    * proc/Makefile (MIGSTUBS): Add `gnumachServer.o'.
    * proc/main.c (message_demuxer): Handle the `task_notify' protocol.
    (main): Register for new task notificatinos.
    * proc/mgt.c (S_mach_notify_new_task): Add server function.

commit 09ff61acc11cd495af5f4cba1f9a1f850c6745c9
Author: Justus Winter <address@hidden>
Date:   Fri Nov 7 11:47:09 2014 +0100

    Makeconf: handle the task_notify protocol
    
    * Makeconf (mach_defs_names): Add `task_notify'.

commit dd0317e49cf33671da3d6b1b17b12f7fa097756e
Author: Samuel Thibault <address@hidden>
Date:   Wed Dec 10 01:18:07 2014 +0100

    fakeroot: Fix initializing default faked field of nodes
    
    * trans/fakeroot.c (new_node): Initialize faked field to FAKE_DEFAULT.

commit 6d9b349c4054b5998eea421823f97fb801ff8d75
Author: David Michael <address@hidden>
Date:   Sun Dec 7 23:21:16 2014 -0500

    include: don't install nonexistent refcount.h
    
    * include/Makefile (installhdrs): Remove refcount.h.

commit 7f68a98c5cad19350f53b00203465c72641b8f58
Author: Samuel Thibault <address@hidden>
Date:   Tue Dec 9 01:36:34 2014 +0100

    Fix mode of nodes created with mkfile
    
    Their faked field was not initialized.
    Thanks a lot to Svante Signell for the investigation
    
    * trans/fakeroot.c (new_node): Initialize faked field of nn to 0.
    (netfs_attempt_mkfile): Call set_default_attributes on newly-allocated node,
    and if the real mode is not the same as the requested mode, fake the mode.

commit ac30e16e8185883af52b4f45aad9f7a61e5c9911
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 10:24:26 2013 +0100

    hurd: add intranpayload functions to all hurd types
    
    For each hurd type defined in hurd_types.h, add a intranpayload
    function.  If an X_INTRAN mutation is defined for a type, a
    corresponding X_INTRAN_PAYLOAD has to be defined.  If no X_INTRAN
    mutation is defined, use ports_payload_get_name as intranpayload
    function, turning the payload back into an port name.
    
    * hurd/hurd_types.defs: Add intranpayload functions.
    * hurd/term.defs: Likewise.
    * hurd/default_pager.defs: Include `hurd_types.defs' for
    `MACH_PAYLOAD_TO_PORT'.

commit 02ae7e436efa33b11227c251eb9bb3a036082fe1
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 12:21:49 2013 +0100

    utils/rpctrace: make `trace_and_forward' payload-aware
    
    As the protected payloads were retrofitted into the Mach message
    format, the local port type is lost.
    
    * utils/rpctrace.c (is_notification): New function
    (trace_and_forward): Recover the original local port type.

commit 2e43e93b78786c42828867057818888c306ded1f
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 21:00:48 2013 +0100

    trans/symlink: disable default payload to port mapping
    
    `fsysServer' is only used by the symlink translator which does not use
    libports.  Therefor, it is not necessary to use the default payload to
    port translation function.
    
    * trans/Makefile (fsys-MIGSFLAGS): Disable the default payload to port
    translation function.

commit b0ed6c9379dc680047def564fbc0ba04dff8d50b
Author: Justus Winter <address@hidden>
Date:   Fri Nov 21 05:29:36 2014 +0100

    trans/streamio: make the translator payload-aware
    
    * trans/Makefile (device_reply-MIGSFLAGS): Define MACH_PAYLOAD_TO_PORT.

commit f7947d4018ec2bc7348beaa8d58139b4406471ca
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 16:51:42 2013 +0100

    trans/password: add a payload-aware intrans function
    
    * trans/Makefile (password-MIGSFLAGS): Add mutator.

commit 28a16dd74e9f3a81a5e2a96a54b0faf06dd0687f
Author: Justus Winter <address@hidden>
Date:   Sun Apr 13 17:08:38 2014 +0200

    trans/ifsock: add a payload-aware intrans function
    
    * trans/Makefile (ifsock-MIGSFLAGS): Add mutator.

commit ecb7f7c08ecc57863e606c553d7ea3477e6d2126
Author: Justus Winter <address@hidden>
Date:   Sun Nov 23 19:24:49 2014 +0100

    trans/fakeroot: make the demuxer payload-aware
    
    * trans/fakeroot.c (netfs_demuxer): Make the demuxer payload-aware.

commit 73624addcafebb767622cfd086ef7a7ebe67761b
Author: Justus Winter <address@hidden>
Date:   Mon Apr 14 14:21:16 2014 +0200

    term: add a payload-aware intrans function
    
    * term/mig-mutate.h: Add mutator.

commit 45f735576a92bf50b431f28425e0b4b4a8da8ec6
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 20:57:40 2013 +0100

    startup: disable default payload to port mapping
    
    startup does not use libports. Therefor, it is not necessary to use the
    default payload to port translation function.
    
    * startup/Makefile (MIGSFLAGS): Disable the default payload to port
    translation function.

commit 07db92f65a7b49f97bc43ed94ff02586b75e21c6
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 10:31:08 2013 +0100

    proc: add payload-aware intrans functions
    
    * proc/mig-decls.h (begin_using_proc_payload): New function.
    (begin_using_exc_payload): Likewise.
    * proc/mig-mutate.h: Add mutators.
    * proc/proc_exc.defs (exception_t): Add payload-aware in-translator
    function.

commit ab741d845af6fac6313ed40b8f2ae148d96aa716
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 11:13:29 2013 +0100

    pflocal: add payload-aware intrans functions
    
    * pflocal/mig-mutate.h: Add mutators.
    * pflocal/mig-decls.c (begin_using_sock_user_payload): New function.
    (begin_using_addr_payload): Likewise.

commit 2514b693920124eb47eb48f50f07b179bc5090e9
Author: Justus Winter <address@hidden>
Date:   Sun Apr 13 14:03:48 2014 +0200

    pfinet: make the demuxers payload-aware
    
    * pfinet/ethernet.c (ethernet_demuxer): Make the demuxer payload-aware.
    * pfinet/main.c (pfinet_demuxer): Likewise.

commit df8605b39f109362e86b0ebf6b8cf79fd1b2f3fd
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 11:10:20 2013 +0100

    pfinet: add payload-aware intrans functions
    
    * pfinet/mig-mutate.h: Add mutators.
    * pfinet/mig-decls.h (begin_using_socket_payload): New function.
    (begin_using_sockaddr_payload): Likewise.

commit b6079b096eef4b7b347c85184592584c7ec4a022
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 11:08:39 2013 +0100

    exec: add payload-aware intrans functions
    
    * exec/execmutations.h: Add mutators.
    * exec/mig-decls.h (begin_using_bootinfo_payload): New function.

commit b11b002e1f08ad44273e9b139fab195e56bf6b6b
Author: Justus Winter <address@hidden>
Date:   Fri Apr 4 16:53:25 2014 +0200

    console-client: make the demuxer payload-aware
    
    * console-client/trans.c (console_demuxer): make the demuxer payload-aware.

commit 4191267e600e4ff1d54cf42baa2b3a0c9a842844
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 10:40:56 2013 +0100

    console: add a payload-aware intrans function
    
    * console/priv.h (begin_using_protid_payload): New function.
    * console/mutations.h: Add mutators.

commit edfeb493f9d95e64b747a11abb528d81da47b16a
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 14:43:31 2013 +0100

    auth: add a payload-aware intrans function
    
    * auth/mig-mutate.h: Add mutator.
    * auth/mig-decls.h (auth_payload_to_handle): New function.

commit d3bbc5f4309b85e36e260e9c0ece006b131db3f5
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 14:12:25 2013 +0100

    libcons: add a payload-aware intrans function
    
    * libcons/mutations.h: Add mutator.
    * libcons/priv.h (begin_using_notify_payload): New function.

commit 0095490a7918ba60483d656214dd9080601e886f
Author: Justus Winter <address@hidden>
Date:   Fri Apr 4 14:19:59 2014 +0200

    libpager: add a payload-aware intrans function
    
    * libpager/mig-decls.h (begin_using_pager_payload): New function.
    * libpager/mig-mutate.h: Add mutators.

commit 831a341d6b32d1005c6667e71aec9f67c3d48456
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 11:04:38 2013 +0100

    libtrivfs: add payload-aware intrans functions
    
    * libtrivfs/mig-decls.h (trivfs_begin_using_protid_payload): New function.
    (trivfs_begin_using_control_payload): Likewise.
    * libtrivfs/mig-mutate.h: Add mutators.

commit 66bfd16b75e8731a3b03a99e931e100b00c0d266
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 10:45:44 2013 +0100

    libnetfs: add a payload-aware intrans function
    
    * libnetfs/priv.h (begin_using_protid_payload): New function.
    * libnetfs/mutations.h: Add mutator.

commit a226c74609b12cac905d06ec97a077bb2633e8a8
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 10:43:18 2013 +0100

    libdiskfs: add payload-aware intrans functions
    
    * libdiskfs/diskfs.h (diskfs_begin_using_protid_payload): New function.
    (diskfs_begin_using_control_payload): Likewise.
    (diskfs_begin_using_bootinfo_payload): Likewise.
    * libdiskfs/fsmutations.h: Add mutators.

commit f8ce37835ad53f67da245db6fed7d2a028514b01
Author: Justus Winter <address@hidden>
Date:   Tue Apr 8 23:40:26 2014 +0200

    libports: add a payload-aware intrans function
    
    * libports/mig-decls.h (begin_using_port_info_payload): New function.
    * libports/mig-mutate.h: Add mutator.

commit 92b49a0fc6f24cbd970f8a9f79cf2513cd58a1b3
Author: Justus Winter <address@hidden>
Date:   Sat Nov 23 16:19:08 2013 +0100

    libports: add `ports_lookup_payload' and `ports_payload_get_name'
    
    These two functions map payloads to objects and port names. The former
    can be used like `ports_lookup_port' to look up objects, the latter to
    map payloads to port names if the server function expects a
    `mach_port_t'.
    
    * libports/ports.h: Add function ports_payload_get_name.
    * libports/lookup-payload.c: New file.
    * libports/ports.h (ports_lookup_payload): Add declaration.
    * libports/Makefile (SRCS): Add lookup-payload.c.

commit 9a5ede46033e225b870cd289221ac0608540a6d3
Author: Samuel Thibault <address@hidden>
Date:   Sat Dec 6 12:42:41 2014 +0100

    Fix coding style

commit 0d3b80f04a1caee51b9995c9626838f85295bb06
Author: Justus Winter <address@hidden>
Date:   Sun Nov 23 19:09:51 2014 +0100

    libshouldbeinlibc: move the reference counting primitives here
    
    Declare all functions `extern inline' instead of `static inline'.
    This allows us to use them in functions declared as `extern inline'.
    
    * libshouldbeinlibc/refcount.h: Move here, and declare all functions
    `extern inline'.
    * libshouldbeinlibc/refcount.c: And define the functions here.
    * libshouldbeinlibc/Makefile: Add `refcount.{c,h}'.

commit 40d433fd1ca3aedac58a281f982725bfa9f77997
Author: Justus Winter <address@hidden>
Date:   Wed Nov 26 12:12:27 2014 +0100

    Revert "random: fix a receiver lookup"
    
    This reverts "8927fbd63e29005ddb9b2c2264046089bf669857".
    
    The change mistakenly adds mutators for the `startup' protocol, but
    the server routine is for the `startup_notify' protocol.

commit 7ca4c02513d7c6998d9c92dafb3c0fcbe8d6dd6d
Author: Samuel Thibault <address@hidden>
Date:   Thu Nov 27 19:05:57 2014 +0100

    Add atomicity support to fshelp_acquire_lock
    
    This adds support for the __LOCK_ATOMIC flag which requests atomicity of 
SH->EX
    upgrades and EX->SH downgrades.
    
    * libfshelp/lock-acquire.c (__LOCK_ATOMIC): New macro
    (fshelp_acquire_lock): When __LOCK_ATOMIC is set, do not release the
    lock early, change the lock hold atomically instead. On upgrade to LOCK_EX,
    prevent new shared locks from being acquired to avoid starvation.

commit b69b9c28b6628c7d736476d075d56ae137afd343
Author: Samuel Thibault <address@hidden>
Date:   Thu Nov 27 01:24:43 2014 +0100

    Fix proc crashes
    
    * proc/notify.c (do_mach_notify_dead_name): When `pi' is NULL,
    immediately return EOPNOTSUPP.

commit 9cd99ff80c3c129ed137e0d22b7e438f292e5e8f
Author: Justus Winter <address@hidden>
Date:   Sun Nov 23 20:13:30 2014 +0100

    libdiskfs: fix fabrication of protid
    
    * libdiskfs/dir-init.c (diskfs_init_dir): Fix fabrication of protid.

commit b3fcdc50024b3837a76cd854d02a940dac2e5dc3
Author: Justus Winter <address@hidden>
Date:   Sun Nov 23 18:11:30 2014 +0100

    libpager: make the request queue more memory-efficient
    
    Previously, `pager_demuxer' allocated a chunk of memory for the
    response message.  But if memory gets scarce, the kernel will issue a
    large number of paging requests to free up memory.  In such a
    situation, allocating memory is dangerous.
    
    Fix this by not allocating space for the response message, rather, use
    a chunk of the workers stack space.  Also, we only handle the `notify'
    and `memory_object' protocol, which both only contain simple routines,
    we only need a `mig_response_header_t'.
    
    * libpager/demuxer.c (struct request): Remove `inp' and `outp'.
    (request_inp): New function.
    (pager_demuxer): Do not allocate memory for the response.
    (mig_reply_setup): New function.
    (worker_func): Adjust accordingly.

commit 25fe9cb62331d609b87b9d0b1db06d06ab825d16
Author: Justus Winter <address@hidden>
Date:   Fri Nov 7 10:43:47 2014 +0100

    boot: improve the demuxer
    
    Handle multiple request types as recommended by the Mach Server
    Writer's Guide section 4, subsection "Handling Multiple Request
    Types".  This avoids initializing the reply message in every X_server
    function.
    
    * boot/boot.c (mig_reply_setup): Provide local version.
    (request_server): Rename to `boot_demuxer', and improve the dispatch.

commit 4e38225c4e3af1dede56b5df6f734faaa2b2469e
Author: Justus Winter <address@hidden>
Date:   Fri Nov 7 00:27:03 2014 +0100

    boot: implement pseudo-time device
    
    * boot/boot.c (pseudo_time): New variable.
    (main): Allocate port `pseudo_time'.
    (ds_device_open): Give out `pseudo_time'.
    (ds_device_map): Emulate Mach-style `Mapped Time'.

commit e4429ebed2924fd75b23248719a6e0ef4f8b53c3
Author: Justus Winter <address@hidden>
Date:   Fri Nov 7 09:56:29 2014 +0100

    boot: support ds_device_get_status with flavor DEV_GET_RECORDS
    
    * boot/boot.c (ds_device_get_status): Support flavor DEV_GET_RECORDS.

commit eece795b00d83c9816a2cc7ebb7b8aad7a37bc17
Author: Justus Winter <address@hidden>
Date:   Thu Nov 6 18:49:06 2014 +0100

    boot: drop obsolete device procedures
    
    * boot/boot.c (ds_xxx_device_set_status): Remove function.
    (ds_xxx_device_get_status): Likewise.
    (ds_xxx_device_set_filter): Likewise.

commit a99d8b562d74e3b08c88d52433914d9c1c6bd362
Author: Justus Winter <address@hidden>
Date:   Thu Nov 6 13:59:59 2014 +0100

    boot: remove unused function `boot_script_read_file'
    
    The unused function `boot_script_read_file' requires access to the
    default pager, which is privileged.
    
    * boot/boot.c (defpager): Remove now unused variable.
    (boot_script_read_file): Remove unused function.
    (main): Do not acquire port to the default pager.
    * boot/boot_script.h (boot_script_read_file): Remove declaration.

commit 5133c8eb5d6564d037c9c7312ee4506c0d2e49a7
Author: Justus Winter <address@hidden>
Date:   Thu Nov 6 13:27:43 2014 +0100

    boot: drop bootstrap compat code
    
    GNU Mach never sent old-style bootstrap messages.  Drop the unused
    compatibility code.
    
    * boot/boot.c (request_server): Drop unused code.
    (bootstrap_compat): Drop unused function.

commit 41eda58f8bfa602f7aa82157b5d1bd3c6ec30466
Author: Justus Winter <address@hidden>
Date:   Fri Nov 7 16:15:17 2014 +0100

    startup: also open `console' for reading
    
    * startup/startup.c (main): Also open `console' for reading.

commit 8bee9fcf5fc9e47e1aac0a670cc8d5e3fba8a7dd
Author: Justus Winter <address@hidden>
Date:   Fri Nov 7 14:57:43 2014 +0100

    proc: gracefully handle failure to increase priority
    
    * proc/main.c (increase_priority): New function.
    (main): Move code increasing the proc servers priority to a new
    function and handle errors gracefully.

commit 788407b951b162148a2e223da69ff2c16d8d05b4
Author: Justus Winter <address@hidden>
Date:   Fri Nov 7 11:44:22 2014 +0100

    Makeconf: handle the gnumach protocol
    
    * Makeconf (mach_defs_names): Add `gnumach'.

commit 5ee314b6c1ffd8b090ca6771f0896e080f7000ef
Author: Justus Winter <address@hidden>
Date:   Thu Sep 19 09:15:02 2013 +0200

    startup: bind the startup server to /servers/startup
    
    Previously, the Hurd (ab)used the fact that the startup server speaks
    all protocols on its message port.  Any server that wished to register
    for shutdown notifications would use proc_getmsgport to get a port to
    the startup server.
    
    This hardcodes the PID of /hurd/startup, and does not allow one to
    point a server to ones own startup server (e.g. using remap).
    
    Bind the startup server to /servers/startup instead.  Use this to
    contact the startup server.
    
    * exec/main.c (S_exec_init): Use /servers/startup.  Fall back to the
    old method so that the system still boots when the node
    /servers/startup is missing.
    * hurd/paths.h (_SERVERS_STARTUP): New macro.
    * libdiskfs/boot-start.c (diskfs_S_fsys_init): Use /servers/startup.
    * libdiskfs/init-startup.c (_diskfs_init_completed): Likewise.
    * pfinet/main.c (arrange_shutdown_notification): Likewise.
    * startup/Makefile (OBJS): Add fsysServer.o.
    * startup/startup.c (demuxer): Handle the fsys protocol.
    (main): Bind to /servers/startup.
    (S_fsys_getroot): Implement fsys_getroot.  Stub out the rest.

commit dcafd2d6cc7a98744b08875b35caf218a4a5c14a
Author: Justus Winter <address@hidden>
Date:   Wed Sep 18 23:16:34 2013 +0200

    startup: fix the declaration of the *_server functions
    
    * startup/startup.c (demuxer): Fix the declaration of the server functions.

commit 31e8affe365ca9f1b91e31e3798f3d0725da15df
Author: Justus Winter <address@hidden>
Date:   Wed Sep 18 23:12:13 2013 +0200

    startup: be more specific in the shutdown message
    
    Use the BOOT macro to print either halt or reboot instead of the
    generic shutdown in the event of an system shutdown.
    
    * startup/startup.c (reboot_system): Use more specific message.

commit 5cf9e79ca7a28376c7645271136eb2cbb30dc5bc
Author: Justus Winter <address@hidden>
Date:   Wed Sep 18 22:58:11 2013 +0200

    startup: do not pass signals on to the child
    
    Formerly /hurd/startup would forward all signals to the child it
    started (e.g. /libexec/runsystem).
    
    The motivation for doing so is not revealed in the comments, nor it is
    mentioned in the history of the version control system.
    
    This patch removes the forwarding of signals to the child.
    
    * startup/startup.c (process_signal): Do not pass signals on to the child.
    * startup/stubs.c: Remove file.
    * startup/Makefile: Remove stubs.c.

commit 7e9c559c75901f391b4151ed6cabba74e60f80af
Author: Justus Winter <address@hidden>
Date:   Wed Sep 18 15:29:36 2013 +0200

    init: add a minimalist init program
    
    This patch adds a minimalist init program.  It is somewhat lacking in
    features, but is able to bring up a Hurd system with the runsystem and
    rc scripts.  In fact, it roughly does what the former /hurd/init did,
    modulo all the very early bootstrapping stuff and the startup
    protocol.  It is started when all the essential servers are up and
    running, so it can make use of most of the POSIX goodies, making its
    implementation much simpler.
    
    * Makefile (prog-subdirs): Add init.
    * daemons/runsystem.sh: Generalize runsystem so that it can start any
    init as specified on the kernel command line.  By default, it starts
    /hurd/init.
    * daemons/runsystem.hurd: This is a verbatim copy of runsystem.sh.  It
    is started by /hurd/init.
    * daemons/rc.sh: Do not start /hurd/mach-defpager as it is already
    started in runsystem.sh.
    * daemons/Makefile (SRCS): Add runsystem.hurd.
    * init/Makefile: New file.
    * init/init.c: Likewise.

commit 0224d569030e6838c63cf946ae7321be923afc23
Author: Justus Winter <address@hidden>
Date:   Tue Sep 17 13:44:44 2013 +0200

    startup: rename /hurd/init to /hurd/startup
    
    This patch series splits /hurd/init into two programs.  As a first
    step, this patch renames /hurd/init to /hurd/startup.  It is called
    startup because it speaks the startup protocol.
    
    * startup: Rename init to startup.  Adjust accordingly.
    * Makefile (prog-subdirs): Likewise.
    * doc/hurd.texi (Server Bootstrap): Likewise.
    * hurd/paths.h (_HURD_STARTUP): Likewise.
    * libdiskfs/boot-start.c (diskfs_boot_init_program): Likewise.
    * libdiskfs/opts-std-startup.c (startup_options): Likewise.

commit bf7ce656b71123926f0fcb32e4b9577b395da76e
Author: Justus Winter <address@hidden>
Date:   Fri Sep 5 10:34:24 2014 +0200

    procfs: do not hard-code the default argument values
    
    * procfs/main.c (common_options): If possible, do not hard-code the
    default values.

commit 8d16db0cc28b2d911aee918d5c3582ad29ddfeed
Author: Justus Winter <address@hidden>
Date:   Wed Sep 18 15:59:31 2013 +0200

    Add proc_set_init_task, make runsystem pid 1
    
    * hurd/process.defs (proc_set_init_task): New procedure.
    * hurd/process_reply.defs (proc_set_init_task): Likewise.
    * hurd/process_request.defs (proc_set_init_task): Likewise.
    * include/pids.h: Add HURD_PID_INIT as 1, adjust others accordingly.
    * init/init.c (start_child): Register the child task.
    * proc/proc.h (init_proc): New variable.
    (create_startup_proc): Rename to create_init_proc.
    * proc/main.c (main): Create placeholder proc object for pid 1.
    * proc/mgt.c: Use init_proc instead of startup_proc, as the former is
    the new root of the process tree.
    (create_startup_proc): Rename to create_init_proc.
    (S_proc_set_init_task): New function.
    * doc/hurd.texi (Server Bootstrap): Update accordingly.
    * procfs/main.c: Do not hard-code kernel pid, use pids.h instead.

commit c99cb9e4ab1bd2683759f35a6878a685bf5e8dd7
Author: Justus Winter <address@hidden>
Date:   Sun Oct 5 13:20:01 2014 +0200

    trans/mtab: avoid firmlink loops
    
    * trans/mtab.c (struct mtab): Add a hash table to keep track of seen
    ports.
    (mtab_mark_as_seen): New function that records the identity port of a
    given node in the hash table and reports whether it has been there
    before.
    (mtab_populate): Use the new function to avoid running in circles.
    (main, open_hook): Initialize hash table.
    (close_hook): Free ports and destroy hash table.

commit 36f340ae47a0f643be6d59a8190600cdd34eef0c
Author: Samuel Thibault <address@hidden>
Date:   Fri Nov 21 04:08:57 2014 +0100

    Always canonicalize fstab entries with realpath
    
    To avoid spurious ./, /, symlinks, etc.
    
    * sutils/fstab.c (fs_set_mntent): Try to call realpath on mnt_fsname and 
mnt_dir
    field of `mntent'.
    (fstab_find_mount): Try to call realpath on `name' parameter.
    (fstab_find): Do not try to call realpath.
    (fstab_read): Reset errno to zero before calling getmntent.
    * utils/umount.c (main): Do not warn about missing fstab entries for
    active translators.

commit f981d5bdba78ef72dbbf0d22c146890a305d487c
Author: Samuel Thibault <address@hidden>
Date:   Fri Nov 21 02:56:11 2014 +0100

    Fix compiler warning
    
    * libnetfs/dir-lookup.c (netfs_S_dir_lookup): Initialize
    register_translator to 0, otherwise it may be used uninitialized in case
    of non-ENOENT errors.

commit 9a56d8f0803d40dacb92eb366b534bbbd5438096
Author: Samuel Thibault <address@hidden>
Date:   Fri Nov 21 02:52:18 2014 +0100

    Fix recording complete path of passive relative translators
    
    * libnetfs/dir-lookup.c (netfs_S_dir_lookup): Prepend current path to
    the relative path before recording the active translator.

commit f88d4616a25175c42c10334491054d54310262db
Author: Samuel Thibault <address@hidden>
Date:   Fri Nov 21 02:49:29 2014 +0100

    Fix recording complete path of passive relative translators
    
    * libdiskfs/dir-lookup.c (diskfs_S_dir_lookup): Prepend current path to
    the relative path before recording the active translator.

commit fa108a1e6f15946aa72cd8edd09f3c08255b76fd
Author: Samuel Thibault <address@hidden>
Date:   Fri Nov 21 02:47:19 2014 +0100

    Let pty readers always read end of writer output
    
    * term/ptyio.c (pty_io_read): Do not return EIO when there is no writer
    any more but some output remains in the pipe.

commit 6cc0c78b1f496cc9e680c0726b7561c93c3f1a7c
Author: Justus Winter <address@hidden>
Date:   Wed Nov 12 13:20:52 2014 +0100

    utils/rpctrace: fix crash while printing messages
    
    % fakeroot rpctrace install
    [...]
      63<--66(pid5363)->io_read (-1 8192) = 0 [... rpctrace crashes]
    /bin/fakeauth: Segmentation fault for child 5362
    /bin/settrans: Error 139 for child 5361
    
    * utils/rpctrace.c (print_data): Fix this by guarding the code
    escaping non-printable characters introduced in 84932431 against
    `data' being NULL.

commit 324c9cdbcd3644a0f8eb467b1ea61b9ff889ae7a
Author: Samuel Thibault <address@hidden>
Date:   Tue Nov 11 22:43:22 2014 +0100

    Make procfs appear in /proc/mounts
    
    d-i needs to be able to check whether /proc is mounted or not.
    
    * procfs/main.c (netfs_get_source): New function.

commit cfafc1a905f11da2b856aecea02b8c7e1f95e5dd
Author: Samuel Thibault <address@hidden>
Date:   Mon Nov 10 03:32:19 2014 +0100

    Fix mach-defpager's kalloc values
    
    * mach-defpager/kalloc.c (MINSIZE): Set to sizeof(vm_offset_t) instead
    of hardcoded 4.
    (kalloc_init): Set kalloc_max to MINSIZE << (KLIST_MAX-1) instead of
    hardcoded 16384.
    (kalloc, kfree): Use the cache for the maximum size too.

commit b11e2e666ce3e1a8ad167c82bfc1fc9b820f97f3
Author: Samuel Thibault <address@hidden>
Date:   Mon Nov 10 00:11:32 2014 +0100

    Avoid hitting VM_MAX_ADDRESS
    
    * libpager/pager-memcpy.c (pager_memcpy): Reset address passed to vm_map
    on each loop, to avoid potentially monotonically increasing up to
    VM_MAX_ADDRESS.

commit 84172a2e26fd81c1c39b6301b003cc89b97ee75c
Author: Samuel Thibault <address@hidden>
Date:   Sun Nov 9 22:38:22 2014 +0100

    Deal with odd kernel behavior
    
    Some versions of gnumach actually take address as a mapping hint, and would 
fail
    if the hint is bogus.  Make sure to pass 0 for those versions.
    
    * libstore/memobj.c (memobj_read): Make sure to set *buf to 0 before
    calling vm_map.

commit 94b2c453829b3aebdaccf7d3d252136b283002b3
Author: Samuel Thibault <address@hidden>
Date:   Sun Nov 9 22:31:21 2014 +0100

    Deal with odd kernel behavior
    
    Some versions of gnumach actually take address as a mapping hint, and would 
fail
    if the hint is bogus.  Make sure to pass 0 for those versions.
    
    * console/pager.c (user_pager_create): Make sure to set *user to 0 before
    calling vm_map.
    * libdiskfs/disk-pager.c (diskfs_start_disk_pager): Make sure to set *image 
to 0
    before calling vm_map.
    * libpager/pager-memcpy.c (pager_memcpy): Set window to 0 before calling
    vm_map.
    * tmpfs/node.c (diskfs_get_filemap): Make sure to set np->dn->u.reg.memref 
to 0
    before calling vm_map.

commit 9480792609c779516ac465ac5a038101032be77d
Author: Justus Winter <address@hidden>
Date:   Thu Apr 17 15:44:12 2014 +0200

    libpager: use a fixed number of threads
    
    Previously, libpager used an unbounded number of threads to receive
    messages from the pager bucket.  It used sequence barriers to execute
    the requests to order requests to each object.
    
    The sequence barriers are implemented in seqnos.c.  A server function
    uses _pager_wait_for_seqno to wait for its sequence number and
    _pager_release_seqno to release it, or it uses _pager_update_seqno to
    do both operations in one step.
    
    These sequence barriers divide each server function in three parts: A,
    B, and C.  A_i happens "before" the sequence barrier i, B_i happens
    "in order", C_i happens "after" the sequence barrier.  This partial
    order < has the following properties:
    
    * This order is *per object*.  Requests to different objects are not
      ordered.
    
    * A_i < B_i,  B_i < C_i (due to the structure of the code)
    
    * B_i < B_{i+1} (this is due to the sequence barriers)
    
    * Note that only the B parts are ordered by the sequence numbers, we
      are free to execute C_i and C_{i+1} in any possible order.  The same
      argument applies to the A parts.
    
    The sequence barriers are implemented using a very simple ticket
    algorithm.  Every request, even the invalid ones, is processed by a
    thread, and waits until the ticket count reaches its seqno, does some
    work in-order, then increments the ticket and awakes all threads that
    have piled up up to this moment.  All of them except one will then
    discover that it's not their turn yet and go to sleep again.
    
    Creating one thread per request has proven to be problematic as
    memory_object requests often arrive in large batches.
    
    This patch does two things:
    
    * Use a single thread to receive messages from the port bucket.  All
      incoming request are put into a queue.
    
    * Use a fixed-number of threads (though even one is actually enough)
      to execute the the server functions.  If multiple threads are used,
      a work-delegation mechanism ensures that the per object order < is
      preserved.
    
    For reference, I used the following command to create workloads that
    highlight the problem this patch is addressing:
    
    % settrans t .../ext2fs --sync=30 /dev/sd2s1
    ...
    % /usr/bin/time zsh -c 'for ((i=0; i < 1500; i++)); do
      dd if=/dev/zero of=t/src/$i bs=4k count=290 2>/dev/null
      echo -n .
      if ((i % 100 == 0)) ; then echo -n $i; fi
    done'
    
    * libpager/queue.h: New file.
    * libpager/demuxer.c: Manage a queue of requests received from the
    port bucket.
    (pager_demuxer): Just decode the server function and enqueue the
    request.
    (worker_func): New function that consumes and executes the requests
    from the queue.
    (service_paging_requests): New function.
    (pager_start_workers): Likewise.
    * libpager/data-request.c: Remove the seqno barriers.
    * libpager/data-return.c: Likewise.
    * libpager/data-unlock.c: Likewise.
    * libpager/chg-compl.c: Likewise.
    * libpager/lock-completed.c: Likewise.
    * libpager/no-senders.c: Likewise.
    * libpager/notify-stubs.c: Likewise.
    * libpager/object-init.c: Likewise.
    * libpager/object-terminate.c: Likewise.
    * libpager/seqnos.c: Remove file.
    * libpager/stubs.c: Likewise.
    * libpager/pager.h (pager_demuxer): Drop declaration.
    (pager_start_workers): New declaration.
    * libpager/priv.h: Remove the _pager_seqno declarations.
    * libpager/Makefile (SRCS): Drop seqnos.c.
    * console/pager.c (user_pager_init): Call pager_start_workers.
    * libdiskfs/disk-pager.c: Likewise.
    * storeio/pager.c: Likewise.
    * ext2fs/pager.c (service_paging_requests): Remove function.
    (create_disk_pager): Start separate file pager using
    `pager_start_workers'.
    * fatfs/pager.c (service_paging_requests): Remove function.
    (create_fat_pager): Start separate file pager using
    `pager_start_workers'.

commit 282e4ae275dc1b9b0b5bba6eb1b145cd1e80fa33
Author: Justus Winter <address@hidden>
Date:   Fri Mar 14 00:29:02 2014 +0100

    mach-defpager: use protected payloads for object lookups
    
    * mach-defpager/default_pager.c (pager_port_list_insert): Set
    protected payload.
    (pager_port_list_delete): Clear protected payload.
    * mach-defpager/mig-decls.h (begin_using_default_pager_payload): New
    function.
    * mach-defpager/mig-mutate.h: Add mutator.

commit 89abef408f02e463cfe9d462fa10be64a94b3b36
Author: Samuel Thibault <address@hidden>
Date:   Mon Nov 3 01:53:17 2014 +0100

    Fix optional definitions in static binaries
    
    * libcons/extra-version.c (cons_extra_version): Add weak attribute.
    * libcons/vcons-add.c (cons_vcons_add): Likewise.
    * libcons/vcons-remove.c (cons_vcons_remove): Likewise.
    * libdiskfs/extra-version.c (diskfs_extra_version): Likewise.
    * libdiskfs/get-source.c (diskfs_get_source): Likewise.
    * libdiskfs/readonly-changed.c (diskfs_readonly_changed): Likewise.
    * libdiskfs/sync-default.c (diskfs_default_sync_interval): Likewise.
    * libdiskfs/validate-author.c (diskfs_validate_author_change): Likewise.
    * libdiskfs/validate-flags.c (diskfs_validate_flags_change): Likewise.
    * libdiskfs/validate-group.c (diskfs_validate_group_change): Likewise.
    * libdiskfs/validate-mode.c (diskfs_validate_mode_change): Likewise.
    * libdiskfs/validate-owner.c (diskfs_validate_owner_change): Likewise.
    * libdiskfs/validate-rdev.c (diskfs_validate_rdev_change): Likewise.
    * libnetfs/file-get-storage-info-default.c (netfs_file_get_storage_info):
    Likewise.
    * libnetfs/get-source.c (netfs_get_source): Likewise.
    * libnetfs/set-get-trans.c (netfs_set_translator, netfs_get_translator):
    Likewise.
    * libtrivfs/get-source.c (trivfs_get_source): Likewise.

commit bd611d2bbd2a7faa24ce8d3b1a422cebb8f71e8b
Author: Samuel Thibault <address@hidden>
Date:   Mon Nov 3 00:02:52 2014 +0100

    Use a mere weak attribute instead of a weak alias
    
    We don't need to call the original function, so a weak attribute is
    enough.
    
    * libports/dead-name.c (ports_dead_name): Remove weak alias.
    (__ports_dead_name): Rename back to ports_dead_name, but add weak attribute.

commit 86d5b43634dfb16aca5d03e4df2e047bfa500899
Author: Samuel Thibault <address@hidden>
Date:   Sun Nov 2 23:44:28 2014 +0100

    Fix dead name notification in static binaries
    
    When linking statically, the libports definition would come before the
    libdiskfs definition, defeating the purpose of the ports_dead_name
    callback.
    
    * libports/dead-name.c (ports_dead_name): Rename into __ports_dead_name.
    (ports_dead_name): Add weak alias for __ports_dead_name.

commit 4370c33bccc2ef5bddacbd364270aa310f89c94d
Author: Samuel Thibault <address@hidden>
Date:   Sun Nov 2 23:06:56 2014 +0100

    Fix unlocking translator list
    
    * libfshelp/translator-list.c (fshelp_set_active_translator): Use common
    out path to unlock translator_ihash_lock before exitting on error.

commit e6e1f1addd6f0f237e54f0a55a776c99aa4d72bd
Author: Samuel Thibault <address@hidden>
Date:   Sun Nov 2 16:10:03 2014 +0100

    Fix actual procinfo_t type
    
    * exec/elfcore.c (dump_core): Use procinfo_t, which is already a
    pointer, instead of procinfo_t*.

commit 610c428cf8c9340d955c79cd2daca3ed8657f2b1
Author: Samuel Thibault <address@hidden>
Date:   Sun Nov 2 16:00:03 2014 +0100

    Fix proc_getprocinfo calls
    
    The deallocation also needs to be fixed.
    Also, fetch_procinfo already took care of the conversion.
    
    * exec/elfcore.c (dump_core): Fix procinfoCnt taken from
    proc_getprocinfo.
    * utils/login.c (check_owned): Likewise.
    * libps/procstat.c (merge_procinfo): Remove conversion between bytes and
    int, already handled by fetch_procinfo.

commit 673603dae49fd06de782780a38e2914ed8cd8777
Author: Samuel Thibault <address@hidden>
Date:   Sun Nov 2 12:29:27 2014 +0100

    Fix proc_getprocinfo calls
    
    The procinfoCnt argument is the number of elements of the procinfo_t array,
    not its size in bytes.
    
    * exec/elfcore.c (dump_core): Fix procinfoCnt given to proc_getprocinfo.
    * libps/procstat.c (merge_procinfo): Likewise.
    * utils/login.c (check_owned): Likewise.

commit 139b283e0d40a3a482a61e1fb9afb5381323d8d0
Author: Justus Winter <address@hidden>
Date:   Wed Oct 29 14:57:23 2014 +0100

    pfinet: fix path in comment
    
    * pfinet/main.c: Fix path in comment.

commit 78343e97c68fda079c66f2443bab6d1ee16f0b67
Author: Justus Winter <address@hidden>
Date:   Sat May 3 01:02:35 2014 +0200

    libports: lock-less reference counting for port_info objects
    
    * libports/ports.h (struct port_info): Use the new type.
    * libports/lookup-port.c: No need to lock _ports_lock anymore.
    * libports/bucket-iterate.c: Likewise.
    * libports/complete-deallocate.c: Check if someone reacquired a
    reference through a hash table lookup.
    * libports/create-internal.c: Use the new reference counting primitives.
    * libports/get-right.c: Likewise.
    * libports/import-port.c: Likewise.
    * libports/port-deref-weak.c: Likewise.
    * libports/port-deref.c: Likewise.
    * libports/port-ref-weak.c: Likewise.
    * libports/port-ref.c: Likewise.
    * libports/reallocate-from-external.c: Likewise.
    * libports/transfer-right.c: Likewise.
    * utils/rpctrace.c: Likewise.

commit 9a043bf1792be16a045dd2e2e37c2c6354425b9b
Author: Gabriele Giacone <address@hidden>
Date:   Tue May 27 22:20:29 2014 +0200

    utils/mount: add mount options to create firmlinks.
    
    * utils/mount.c (parse_opt): Add -B/--bind/--firmlink/-o bind mount
      options.  (do_mount): Do not pass bind mount option to settrans, set
      firmlink fstype.  (main): Likewise.

commit ab8d8784cd73d5fe8ede7a95a3df36d068a6145c
Author: Gabriele Giacone <address@hidden>
Date:   Fri Oct 3 14:58:35 2014 +0200

    utils/umount: clean up
    
    According to f2640263468aced5c91ac5fc1f15bb5691f7eb20, passive
    translators are no longer removed.
    
    * utils/umount.c (do_umount) Remove -p option from verbose message.
    (passive_flags): Remove.

commit 4f29d810cad03047c19e5de3c342c90df7193c8b
Author: Justus Winter <address@hidden>
Date:   Sun Sep 7 14:01:38 2014 +0200

    libdiskfs: remove code counting cache misses
    
    * libdiskfs/lookup.c (cache_misses): Remove.
    (cm_lock): Likewise.
    (diskfs_lookup): Do not count cache misses.

commit b2ae574d39adfe283c61a3ec0c766e8780f345af
Author: Justus Winter <address@hidden>
Date:   Sat May 3 03:53:41 2014 +0200

    libports: use a global hash table for the lookups
    
    Previously, libports used a hash table per port bucket.  This makes
    looking up a port difficult if one does not know the port bucket, as
    one has to iterate over all buckets and do a hash table lookup each.
    
    Having to iterate over the buckets makes it necessary to keep a list
    of all buckets, which has to be updated and protected by a lock as
    well.
    
    Also, the current code in _ports_bucket_class_iterate iterates over
    the hash table associated with the bucket given.  When
    ports_class_iterate calls this common function, it obtains a reference
    to the bucket from one of the ports in the given class.  This will not
    work if a class contains ports in different port buckets.  This
    limitation is not documented as far as I can see.  Again, having to
    maintain this list has its cost and requires serialization.
    
    Use a global hash table for lookups instead.  Keep the per-bucket hash
    tables for efficient iteration over buckets.  Furthermore, serialize
    access to all hash tables using a separate lock.  Remove the linked
    lists of all buckets and all ports in a class.
    
    * libports/bucket-iterate.c (ports_bucket_iterate): Acquire
    _ports_htable_lock.  Also, generalize ports_bucket_iterate so that it
    takes a pointer to a hash table as first argument.
    (ports_bucket_iterate): Ajust call to former function accordingly.
    * libports/class-iterate.c (ports_class_iterate): Just call the
    generalized _ports_bucket_class_iterate with the global hash table as
    argument.
    * libports/ports.h (struct port_info): Remove the port class links.
    (struct port_bucket): Remove the hash table, and the all buckets link.
    (_ports_all_buckets): Remove declaration.
    (_ports_htable): New global hash table.
    (_ports_htable_lock): Protected by this lock.
    * libports/claim-right.c: Adjust accordingly.
    * libports/complete-deallocate.c: Likewise.
    * libports/create-bucket.c: Likewise.
    * libports/create-class.c: Likewise.
    * libports/create-internal.c: Likewise.
    * libports/destroy-right.c: Likewise.
    * libports/import-port.c: Likewise.
    * libports/lookup-port.c: Likewise.
    * libports/reallocate-from-external.c: Likewise.
    * libports/reallocate-port.c: Likewise.
    * libports/transfer-right.c: Likewise.
    * libports/inhibit-all-rpcs.c: Iterate over the hash table.
    * libports/inhibit-bucket-rpcs.c: Likewise, but filter using bucket.
    * libports/inhibit-class-rpcs.c: Likewise, but filter using class.
    * libports/init.c (_ports_htable): Initialize.
    (_ports_htable_lock): Likewise.

commit 02c47da17b716bfff20bfafe2d5958b2b720ff49
Author: Justus Winter <address@hidden>
Date:   Fri Sep 19 10:10:24 2014 +0200

    procfs: reorganize rootdir.c
    
    * procfs/rootdir.c: Move the translator linkage code to the
    appropriate location.

commit af68bfc377c4f56a1355d856fe2c666fec6b0d5f
Author: Justus Winter <address@hidden>
Date:   Fri Sep 19 10:01:57 2014 +0200

    procfs: generalize the translator linkage code
    
    Generalize the translator linkage code previously introduced for the
    `mounts' node.
    
    * procfs/rootdir.c (struct procfs_translated_node_ops): New
    specialized node operations structure for translated nodes.
    (rootdir_mounts_make_node): Generalize and rename to
    rootdir_make_translated_node.  Also, pass the entry_hook to
    procfs_make_node so that...
    (rootdir_mounts_get_translator): ... can be generalized to
    rootdir_translated_node_get_translator and read the argz vector from
    the hooked structure.
    (ROOTDIR_DEFINE_TRANSLATED_NODE): New convenience macro to define
    translated nodes.
    (rootdir_entries): Use the new code for the `mounts' node.

commit 1fb3542ef83f01e913d9944b093de8d5c178e5d7
Author: Justus Winter <address@hidden>
Date:   Fri Sep 19 08:18:33 2014 +0200

    procfs: do not test whether /hurd/mtab exists
    
    Now that procfs is merged into the Hurd repository we can just assume
    that the mtab translator exists.
    
    * procfs/rootdir.c (rootdir_mounts_exists): Drop function.
    (rootdir_entries): Adjust accordingly.

commit b288ae932a53133c986e5daace2d5bfa4cf95d2c
Author: Justus Winter <address@hidden>
Date:   Thu Sep 18 19:38:04 2014 +0200

    procfs: implement /proc/filesystems
    
    * procfs/rootdir.c (rootdir_gc_filesystems): New function.
    (rootdir_entries): Use the new function to implement /proc/filesystems.

commit e9b7aa85c98750b6c8f54f3eb0013c359841f4d4
Author: Justus Winter <address@hidden>
Date:   Thu Sep 18 18:38:04 2014 +0200

    procfs: implement /proc/N/maps
    
    Fixes https://savannah.gnu.org/bugs/?32770 .
    
    * procfs/process.c (process_file_gc_maps): New function.
    (entries): Use the new function to implement /proc/N/maps.

commit db9ad21d272a4dce53c35095b97ca0a597b45004
Author: Justus Winter <address@hidden>
Date:   Mon Sep 22 17:59:57 2014 +0200

    exec: redzone page zero before loading anything
    
    This prevents load_section from mapping any sections to page zero.
    
    * exec/exec.c (do_exec): Redzone page zero before loading anything.

commit af77f771b687d3653018bc18b1b07a4805beaa19
Author: Justus Winter <address@hidden>
Date:   Tue Sep 23 11:42:43 2014 +0200

    exec: add proper argument parsing, add --device-master-port
    
    If the device master port is given, a boot-time exec server can print
    diagnostic messages earlier.
    
    * exec/main.c (opt_device_master): New variable.
    (OPT_DEVICE_MASTER_PORT): New macro.
    (options): New set of options.
    (parse_opt): New function.
    (trivfs_append_args): Likewise.
    (argp): Pull the argp definition out of main.
    (trivfs_runtime_argp): Set, so that we respond properly to fsysopts.
    (open_console): Pull the code out of S_exec_init and generalize it.
    (main): Call open_console if a device master port is given.
    (S_exec_init): Call open_console.

commit 1a22019e6a86d0636f9847f8891f280facd2fd22
Author: Alexey Kuznetsov <address@hidden>
Date:   Sun Sep 28 16:05:17 2014 +0200

    BSD apps want sin_zero cleared in sys_getname.
    
    Cherry-picked from Linux c1e9dcb37795b08a1f50b8de7b2ad5efcb15728f
    
    * pfinet/linux-src/net/ipv4/af_inet.c (inet_getname): Clear `sin_zero'
    part of `sin'.

commit 1bfccb9ff3ff1b079fd4b76a4d3e75e340e6813c
Author: Justus Winter <address@hidden>
Date:   Wed Sep 24 15:00:02 2014 +0200

    Update NEWS file

commit 0ef49e125811ddb750403f02a091fd892b595fdf
Author: Justus Winter <address@hidden>
Date:   Fri Sep 19 08:13:26 2014 +0200

    hurd: add symbolic name for the mtab translator
    
    * hurd/paths.h (_HURD_MTAB): New macro.
    * procfs/rootdir.c (rootdir_mounts_get_translator): Use the new macro.
    (rootdir_mounts_exists): Likewise.

commit 3628f1479b9fb77bed1ba4ab8e93ee98e14d9960
Author: Justus Winter <address@hidden>
Date:   Thu Sep 18 16:55:19 2014 +0200

    procfs: fix typo in comment
    
    * procfs/process.c (process_stat_make_node): Fix typo in comment.

commit 74fc3df9e4ecd84b971904d3e14e5a710d941836
Author: Justus Winter <address@hidden>
Date:   Thu Sep 4 12:48:32 2014 +0200

    trans/hello{,-mt}: properly escape contents in trivfs_append_args
    
    Fixes https://savannah.gnu.org/bugs/?15806 .
    
    * trans/hello-mt.c (trivfs_append_args): Escape contents.
    * trans/hello.c (trivfs_append_args): Likewise.

commit 8fd228ccd454578fb0367d97d95b90f9073a8d7c
Author: Justus Winter <address@hidden>
Date:   Thu Sep 4 11:19:29 2014 +0200

    hurd: make memory_object parameter polymorphic
    
    Make the memory_object parameter of default_pager_object_create
    polymorphic.  This fixes https://savannah.gnu.org/bugs/?26751 .
    
    * hurd/default_pager.defs (default_pager_object_create): Make
    memory_object parameter polymorphic.
    * mach-defpager/default_pager.c (S_default_pager_object_create):
    Adjust accordingly.
    * trans/proxy-defpager.c (S_default_pager_object_create): Likewise.

commit 626ff916ca63334e6c170f059ea47f9cfea19661
Author: Justus Winter <address@hidden>
Date:   Tue Sep 2 22:19:54 2014 +0200

    libdiskfs: fix /servers/exec lookup
    
    * libdiskfs/boot-start.c (diskfs_start_bootstrap): Pass retry_name to
    dir_lookup, which is later checked to be the empty string.

commit 5f1011ac0ad676d1e7eaba14d1384180e98fb93e
Author: Justus Winter <address@hidden>
Date:   Fri Jun 20 14:27:59 2014 +0200

    include: detect use-after-free errors using the reference counts
    
    * include/refcount.h (refcount_init): There must be at least one
    reference at initialization time.
    (refcounts_init): Likewise.
    (refcount_unsafe_ref): New function retaining the previous
    functionality of refcount_ref.  It is occasionally useful to raise the
    reference count again after it dropped to zero.
    (refcounts_unsafe_ref): Likewise.
    (refcounts_unsafe_weak_ref): Likewise.
    (refcount_ref): Detect use-after-free errors.
    (refcounts_ref): Likewise.
    (refcounts_ref_weak): Likewise.
    * libtrivfs/protid-clean.c (trivfs_clean_protid): Use refcount_unsafe_ref.

commit 334801c52c9844c06eacbe2e3af65852f7412e3c
Author: Justus Winter <address@hidden>
Date:   Sun Aug 31 14:47:42 2014 +0200

    hurd: fix semantic of file_get_children
    
    When first introduced as fsys_get_children, it made sense to return
    the list of children using paths relative to the root of the
    filesystem that was queried.  Making the get_children method part of
    the fsys protocol was a mistake that has since been corrected in
    9366d6b2.
    
    Instead of returning paths relative to the root of the translator,
    return paths relative to the path of the receiving node.
    
    This fixes a problem with the mtab translator.  Previously, the mtab
    translator invoked on a target that was not the root directory of a
    translator would compute invalid paths, e.g.:
    
    /hurd/mtab: /any/path/servers/socket/26 No such file or directory
    
    * hurd/fs.defs (file_get_children): Update comment.
    * libfshelp/translator-list.c (fshelp_get_active_translators): Add
    argument PREFIX.  Filter entries not beginning with PREFIX if
    non-NULL, and omit PREFIX from the returned paths.
    * libfshelp/fshelp.h (fshelp_get_active_translators): Update comment
    accordingly.  Also clarify that both FILTER and PREFIX can be NULL.
    * libdiskfs/file-get-children.c (diskfs_S_file_get_children): Update
    comment, pass prefix to fshelp_get_active_translators.
    * libnetfs/file-get-children.c (netfs_S_file_get_children): Likewise.

commit c5f866e17c72302d826b885f098b1c07d7abdbc7
Author: Justus Winter <address@hidden>
Date:   Sun Aug 31 14:36:50 2014 +0200

    libihash: fix comparison between signed and unsigned integer
    
    * libihash/ihash.h (HURD_IHASH_ITERATE): Fix comparison between signed
    and unsigned integer expressions.

commit 6fd075df8f71c95cff04d58643e5da0d58dbbada
Author: Justus Winter <address@hidden>
Date:   Sun Aug 31 12:46:25 2014 +0200

    trans/mtab: use setnullauth to drop privileges
    
    * trans/mtab.c (main): Use setnullauth to drop privileges.

commit cf8df03cf9002642a9399da47242d819cc3653e4
Author: Justus Winter <address@hidden>
Date:   Sun Aug 31 16:39:35 2014 +0200

    libtrivfs: fix typo
    
    * libtrivfs/protid-clean.c (trivfs_clean_protid): Fix typo.

commit 520ef2ed66d47bb81a55829a88dda81f62dc95e5
Author: Justus Winter <address@hidden>
Date:   Fri Jun 20 13:54:28 2014 +0200

    libdiskfs: fix reference counting of peropen objects
    
    Previously, peropen objects were created with a reference count of
    zero.  Therefore, if diskfs_create_protid fails, passing such an
    object to diskfs_release_peropen would lead to a reference count
    underflow.
    
    * libdiskfs/peropen-make.c (diskfs_peropen_make): Initialize reference
    count to one.
    * libdiskfs/protid-make.c (diskfs_start_protid): And consume this
    reference on success.  Update comment.
    (diskfs_create_protid): Update comment.
    * libdiskfs/diskfs.h: Update comments.
    * libdiskfs/io-duplicate.c (diskfs_S_io_duplicate): Adjust reference
    counting accordingly.
    * libdiskfs/io-reauthenticate.c (diskfs_S_io_reauthenticate): Likewise.
    * libdiskfs/io-restrict-auth.c (diskfs_S_io_restrict_auth): Likewise.
    * doc/hurd.texi (Diskfs Internals): Update accordingly.

commit c19a90851170077b99e694262d002a6e22145b49
Author: Samuel Thibault <address@hidden>
Date:   Tue Aug 26 23:39:24 2014 +0200

    Fix ifsock permission check
    
    POSIX requires write access to the socket, not read access, to be able
    to connect to it.
    
    * trans/ifsock.c (S_ifsock_getsockaddr): Test for O_WRITE instead of
    O_READ.

commit 5a4ddc13246841da1350c8f6e783fd6a1d911aa4
Author: David Michael <address@hidden>
Date:   Mon Aug 25 00:05:40 2014 +0200

    sutils: add urandom device target to MAKEDEV
    
    * sutils/MAKEDEV.sh (urandom): New target.
    (std): Add urandom to the standard devices list.

commit 03ab85c02d9366e2ea7a4b7ecf25154f4cf1737f
Author: Samuel Thibault <address@hidden>
Date:   Sat Aug 23 16:37:30 2014 +0200

    Add missing linefeed
    
    * libpager/object-terminate.c (_pager_seqnos_memory_object_terminate):
    Add missing linefeed in error message.

commit d324631edd3c2549a8cda05c2fc56ceea7fe0593
Author: Svante Signell <address@hidden>
Date:   Tue Aug 19 19:52:01 2014 +0200

    Make settrans return value returned by chroot command
    
    * utils/settrans.c (main): In case of chroot_command, get status from 
waitpid()
    call, and call error() appropriately.

commit c025e6a9881527d5b0e5b2398278410fb4e42138
Author: Marek Benc <address@hidden>
Date:   Thu Jul 17 22:10:16 2014 +0200

    Make the ncursesw driver of the console client compile properly
    
    * console-client/Makefile (NCURSESW_SO_SRCS): Move definition to after
    inclusion of Makeconf.

commit 2588cd19e83ff454a7fc99e68f1d612945504b72
Author: Richard Braun <address@hidden>
Date:   Mon Jun 30 21:28:19 2014 +0200

    libpipe: fix spurious calls to pipe_send
    
    * libpipe/pipe.c (pipe_send): Skip processing if there is nothing to send.

commit 6ad2a33e7fc5cda05eefdec789f4a2033645ebbe
Author: Richard Braun <address@hidden>
Date:   Sat Jun 28 14:48:24 2014 +0200

    Revert "libpipe: fix calls to pipe_send with no data"
    
    This reverts commit 6f856c62613ffc82bf3572a372d2851638c2fb90.
    
    As the comment right above the change says, "this [sending control
    packets] depends on the fact that we always write a data packet".

commit 6f856c62613ffc82bf3572a372d2851638c2fb90
Author: Richard Braun <address@hidden>
Date:   Sat Jun 28 11:41:21 2014 +0200

    libpipe: fix calls to pipe_send with no data
    
    * libpipe/pipe.c (pipe_send): Check that there actually is any data to
    send before calling the pipe write operation.

commit 840ffcb30faf335dbec4a0f02614c202ae113ea2
Author: Justus Winter <address@hidden>
Date:   Wed Jun 4 17:26:06 2014 +0200

    ext2fs: use correct type for block numbers
    
    * ext2fs/dir.c (count_dirents): Use block_t for nb.
    (diskfs_get_directs): Likewise for blkno, nblks.

commit 38d064eab719b8334144094d6499c24718a255c1
Author: Justus Winter <address@hidden>
Date:   Sun Jun 22 14:48:34 2014 +0200

    libdiskfs: fix deadlock
    
    Previously, libdiskfs would deadlock on contention on renamedirlock
    due to the lock being taken spuriously.
    
    Found using fsstress from the Linux Test Project.
    
    * libdiskfs/dir-rename.c (diskfs_S_dir_rename): Remove spurious
    pthread_mutex_lock.

commit 97707c7b564381f0cdf683c77a6450434cb9b556
Author: Pino Toscano <address@hidden>
Date:   Sun Jun 22 17:57:38 2014 +0200

    libdiskfs: expose the ST_NOATIME flag
    
    Expose ST_NOATIME as flag (if available in glibc) if diskfs is set in 
noatime
    mode.
    
    * libdiskfs/file-statfs.c (diskfs_S_file_statfs): Set ST_NOATIME if
    _DISKFS_NOATIME is set.

commit 944cfdbe6cff4e8025a730228b48c1a21b4a2e33
Author: Justus Winter <address@hidden>
Date:   Tue Jun 10 14:22:31 2014 +0200

    libdiskfs: add permission check to file_chflags
    
    Only root is allowed to change the high 16 bits.  The TODO entry says
    otherwise, but that must be a mistake.  For reference, see the glibc
    sources, sysdeps/mach/hurd/bits/stat.h.
    
    * libdiskfs/file-chflags.c (diskfs_S_file_chflags): Add permission
    check.
    * TODO (libdiskfs): Remove entry.

commit 8821d8a213008eb723414c6c70de384830ea10d7
Author: Justus Winter <address@hidden>
Date:   Mon Jun 16 17:34:22 2014 +0200

    libports: avoid realloc(3) corner case
    
    If the size argument is 0, realloc may either return NULL, or return a
    pointer that is only valid for use with free(3).  In either case, the
    memory is freed.  So if realloc would return NULL (it does not on
    GNU), the current code would double free p.
    
    Found using the Clang Static Analyzer.
    
    * libports/bucket-iterate.c (_ports_bucket_class_iterate): Avoid
    calling realloc if no ports were matched.

commit 470972f3f854e92ee1cc8f1e2ada8412a2b97956
Author: Justus Winter <address@hidden>
Date:   Mon Jun 16 16:50:12 2014 +0200

    trans/fakeroot: fix error handling
    
    Found using the Clang Static Analyzer.
    
    * trans/fakeroot.c (new_node): Do not leak a pointer to freed memory.
    Store NULL at *np instead.  This fixes a node use-after-free in
    netfs_S_dir_lookup.

commit 7c5f22e6c746e97871c0339c0068825018754822
Author: Justus Winter <address@hidden>
Date:   Wed Nov 20 12:17:03 2013 +0100

    libshouldbeinlibc: fix dead initialization in fmt_named_interval
    
    Found using the Clang Static Analyzer.
    
    * libshouldbeinlibc/timefmt.c (fmt_named_interval): Fix dead
    initialization.

commit b5a6e598c9f596f13d6aec151ee2efb9bf696b21
Author: Justus Winter <address@hidden>
Date:   Wed Nov 20 11:58:41 2013 +0100

    ftpfs: fix error handling in refresh_dir
    
    Found using the Clang Static Analyzer.
    
    * ftpfs/dir.c (refresh_dir): Fix error handling.

commit fda66d0405f0fdf42cc6c7ae5e494c4ca3c83ad7
Author: David Michael <address@hidden>
Date:   Mon Jun 16 15:08:06 2014 -0400

    Add mach_debug defs rules
    
    * Makeconf (mach_debug_defs_names,mach_debug_defs): New variables.
    * Makeconf: Add rule to generate local $(mach_debug_defs) files.
    * procfs/Makefile: Remove vpath for mach_debug defs.

commit 6e047f852cb052cf4cbc50799373c5f13382540d
Author: Justus Winter <address@hidden>
Date:   Sun Jun 15 18:44:31 2014 +0200

    Add the procfs translator to prog-subdirs
    
    * Makefile (prog-subdirs): Add procfs.

commit 7877d064a4318fb550b3cbcf64f0ec605e4a53e2
Merge: 8672d3f aac4aaf
Author: Justus Winter <address@hidden>
Date:   Sun Jun 15 18:33:03 2014 +0200

    Merge procfs into the Hurd repository

commit aac4aaf42372f61c78061711916c81a9d5bcb42d
Author: Justus Winter <address@hidden>
Date:   Sun Jun 15 18:25:59 2014 +0200

    Prepare the procfs translator to be merged into the Hurd sources
    
    Move the procfs translator to its own subdirectory 'procfs'.
    
    This is the last commit to this repository.  Development of the procfs
    translator will continue in the main Hurd repository.
    
    * procfs/Makefile: Replace the standalone Makefile with the one from
    the Debian packaging repository.

commit 8672d3f031f7898c26b2526960c77c4c522fb950
Merge: 370f2fc 12bf328
Author: Justus Winter <address@hidden>
Date:   Sun Jun 15 17:58:10 2014 +0200

    Merge branch 'merge-random'

commit 370f2fcb4ae7901e34caba64d31027f8cf69a858
Author: Justus Winter <address@hidden>
Date:   Wed Jun 11 11:54:18 2014 +0200

    utils/settrans: implement settrans --start
    
    Start the translator specified by the NODE's passive translator record
    and set it as NODE's active translator.  This is the equivalent of
    doing:
    
    % settrans --active /node $(showtrans /node)
    
    * utils/settrans.c (argp_option): Add --start.
    (parse_opt): Handle --start.
    (main): Retrieve the passive translator record if --start is given.

commit 6f874305906b18a6bd7ba02f7dee949948e41262
Author: Justus Winter <address@hidden>
Date:   Tue Jun 10 16:20:37 2014 +0200

    hurd: fix receiver lookup in termctty_open_terminal
    
    * hurd/hurd_types.h (ctty_t): New type definition.
    * hurd/term.defs (ctty_t): New type definition.
    * term/mig-decls.h: New file.
    * term/mig-mutate.h: Add mutators, includes.
    * term/term.h: Add include guards.
    * term/users.c (S_termctty_open_terminal): Fix receiver lookup.
    * boot/boot.c (S_termctty_open_terminal): Likewise.

commit d73b0ee5f32bdf769a5d9d19c4cc590df07c1bef
Author: Justus Winter <address@hidden>
Date:   Tue Jun 10 14:49:46 2014 +0200

    term: improve the demuxer
    
    Handle multiple request types as recommended by the Mach Server
    Writer's Guide section 4, subsection "Handling Multiple Request
    Types".  This avoids initializing the reply message in every X_server
    function.
    
    * term/main.c (demuxer): Improve the demuxer function.

commit 12bf32881d03225c864afbca431cd93f647ab1b3
Author: Justus Winter <address@hidden>
Date:   Mon Jun 9 12:08:38 2014 +0200

    Add the random translator to prog-subdirs
    
    * Makefile (prog-subdirs): Add random.

commit 707f6cc4dbad734325881c5b275138522188754c
Merge: 10412bf 1ba2ed9
Author: Justus Winter <address@hidden>
Date:   Mon Jun 9 11:57:42 2014 +0200

    Merge the random translator into the Hurd repository

commit 10412bfccc00708663034a76b1a3c66058bb7545
Author: Justus Winter <address@hidden>
Date:   Fri Jun 6 11:45:03 2014 +0200

    ext2fs: fix type of retry_dotdot
    
    * ext2fs/dir.c (diskfs_lookup_hard): Use ino_t for retry_dotdot.

commit a69c285856bec047570ce58e827333332f40c2ef
Author: Justus Winter <address@hidden>
Date:   Fri Jun 6 11:30:26 2014 +0200

    ext2fs: fix type of blockaddr
    
    * ext2fs/dir.c (diskfs_lookup_hard): Use vm_address_t for blockaddr.

commit 4bd281cdd18645a0bffde9748225569eaa85ea44
Author: Justus Winter <address@hidden>
Date:   Fri Jun 6 11:29:18 2014 +0200

    ext2fs: use size_t where appropriate
    
    * extfs/dir.c: Use size_t where appropriate.

commit 6ec540993675a4d0e60497c7788cb577a79028f8
Author: Justus Winter <address@hidden>
Date:   Wed Jun 4 17:05:36 2014 +0200

    ext2fs: fix compiler warning
    
    * ext2fs/pager.c (disk_cache_block_ref): block cannot be negative.

commit 655f60be3622bfbd90e87a4038cc9c8190ad7c35
Author: Justus Winter <address@hidden>
Date:   Fri Jun 6 10:24:00 2014 +0200

    libdiskfs: avoid implicit integer conversion
    
    * libdiskfs/boot-start.c (diskfs_boot_start): Avoid implicit integer
    conversion.

commit df7856856f5f2e4535268362526cc039fed69703
Author: Justus Winter <address@hidden>
Date:   Fri Jun 6 10:03:17 2014 +0200

    libdiskfs: use correct type for disk offsets
    
    * libdiskfs/diskfs.h (struct peropen): Use off_t for filepointer.

commit 8a7b5995f039e43ae918dee691ebb8f960f98db6
Author: Justus Winter <address@hidden>
Date:   Wed Jun 4 17:10:36 2014 +0200

    hurd: fix type of optimal_transfer_size
    
    * hurd/shared.h (struct shared_io): Use blksize_t for optimal_transfer_size.

commit 027bc17eca80bd379663e645aa9a7c59573bf0de
Author: Justus Winter <address@hidden>
Date:   Fri Jun 6 10:20:47 2014 +0200

    include: use unsigned literal in combination with binary not
    
    * include/refcount.h (refcounts_promote): Use ~0U.
    (refcounts_demote): Likewise.

commit 9d8a274e00cf01d2a2ea137f5dbd6f5edb37c15b
Author: Justus Winter <address@hidden>
Date:   Sat May 31 09:16:00 2014 +0200

    libnetfs: fix memory leak
    
    * libnetfs/trans-callback.c (_netfs_translator_callback2_fn): Free
    user if creating the protid failed.

commit f1e305fca2b4ca79cfed6d406ceb37f3dfb59f70
Author: Justus Winter <address@hidden>
Date:   Wed May 28 16:18:23 2014 +0200

    tmpfs: use a thread timeout
    
    There is no need to keep all the threads around, just the master
    thread.
    
    * tmpfs/tmpfs (diskfs_thread_function): Use a thread timeout.

commit a5ca1de1eb575294dbc865a2c4ff643efc117ef4
Author: Ludovic Courtès <address@hidden>
Date:   Sun May 25 01:06:50 2014 +0200

    build: Remove checks for 'getgrouplist' and 'uselocale'.
    
    GNU libc has had them for a long time.
    
    * configure.ac: Remove checks for 'getgrouplist' and 'uselocale'.
    * libshouldbeinlibc/idvec-impgids.c (_merge_implied_gids): Remove #ifdef
      HAVE_GETGROUPLIST and remove #else arm.
    * libthreads/cthreads.c: Remove #ifdef HAVE_USELOCALE, keeping its
      bodies.

commit ea16c110d8ca67a5460d45600a399078a101ef4f
Merge: 73f5884 3219126
Author: Justus Winter <address@hidden>
Date:   Fri May 30 09:41:20 2014 +0200

    Merge branch 'master' of git://git.sv.gnu.org/hurd/hurd

commit 73f5884a591f1e2efef948d108927327a054d97c
Author: Justus Winter <address@hidden>
Date:   Wed May 21 13:30:24 2014 +0200

    libstore: provide function declaration until available upstream
    
    Until the Hurd specific header is available, provide a local
    declaration of ped_device_new_from_store.
    
    * libstore/part.c (ped_device_new_from_store): New declaration.

commit 321912626ca7df438e3402d20b529d45f3473d62
Merge: dc7e6a1 2c7ecdc
Author: Samuel Thibault <address@hidden>
Date:   Thu May 29 23:09:50 2014 +0200

    Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd

commit dc7e6a136e9baf98a2323758765aeab7ebae336c
Author: Ludovic Courtès <address@hidden>
Date:   Thu May 29 23:09:06 2014 +0200

    Disable linking when cross-compiling
    
    * configure.ac: Call AC_NO_EXECUTABLES when cross-compiling.

commit 2c7ecdc6ec8f9d9a27aa7e4e82fa2d84fa55fe9b
Author: Justus Winter <address@hidden>
Date:   Thu May 29 02:03:03 2014 +0200

    libdiskfs: use a hash table for the name cache
    
    Previously, name cache lookup operation completed in O(n) time.  This
    means that making the cache too large would decrease the performance.
    Therefore it was required to tune the size.
    
    Implement the name cache using a hash table.
    
    We use buckets of a fixed size.  We approximate the least-frequently
    used cache algorithm by counting the number of lookups using
    saturating arithmetic in the two lowest bits of the pointer to the
    name.  Using this strategy we achieve a constant worst-case lookup and
    insertion time.
    
    Since we are not bound by the size of the cache anymore, increase its
    size from 200 to 1024.
    
    * libdiskfs/name-cache.c: Implement the name cache using a hash table.
    (diskfs_enter_lookup_cache): Change accordingly.
    (diskfs_purge_lookup_cache): Likewise.
    (diskfs_check_lookup_cache): Likewise.  Also, hard code a
    cache miss for the parent of the root directory and merge unlocking
    and releasing of node references.

commit d0c565fc35e8dc3daa5fb6e9a514c34873e6b204
Author: Justus Winter <address@hidden>
Date:   Wed May 28 16:48:04 2014 +0200

    libdiskfs: remove the statistics code from the name cache
    
    The current name cache lookup operation completes in O(n) time.  This
    means that making the cache too large would decrease the performance.
    Therefore it was required to tune the size, hence the need for
    statistics.
    
    We will use a data structure with worst case constant lookup times in
    the future, removing the need to fine tune the cache size.
    
    * libdiskfs/name-cache.c: Remove the statistics code from the name
    cache.

commit f6730b267a90ad73116e50b027e869cbe0b01211
Author: Justus Winter <address@hidden>
Date:   Sun May 18 14:06:30 2014 +0200

    trans/fakeroot: use netfs_node_netnode instead of np->nn
    
    When using fat nodes, expressions of the form E->nn can be rewritten
    as netfs_node_netnode (E).  This is much faster as it only involves a
    offset calculation.  For reference, I used the following semantic
    patch to create the patch:
    
    @@
    expression E;
    @@
    
    - E->nn
    + netfs_node_netnode (E)
    
    * trans/fakeroot.c: Use netfs_node_netnode instead of np->nn.

commit 6349d15921134adb4491eb9ce87720a0281a7bd6
Author: Justus Winter <address@hidden>
Date:   Sun May 18 13:45:14 2014 +0200

    trans/fakeroot: use fat nodes to simplify the node cache
    
    Previously, fakeroot stored netnodes in the hash table.  But we are
    not interested in a cache for netnodes, we need a node cache.  So
    fakeroot kept pointers to the associated node object in each netnode
    object.
    
    Use fat netfs nodes, which combine node and netnode objects.
    
    * trans/fakeroot.c (struct netnode): Remove np.
    (idport_ihash): Fix ihash location pointer offset.
    (new_node): Allocate fat nodes, store the node pointer in the hash
    table.
    (netfs_node_norefs): Adjust accordingly.
    (netfs_S_dir_lookup): Likewise.

commit 94fecd72f41542c8dfa82bdf7b47742f8c29b321
Author: Justus Winter <address@hidden>
Date:   Sun May 18 13:34:12 2014 +0200

    libnetfs: add netfs_make_node_alloc to allocate fat nodes
    
    libnetfs has two kind of nodes, struct node and struct netnode.
    struct node is used to store libnetfs specific data, while struct
    netnode contains user supplied data.  Previously, both objects were
    allocated separatly, and a pointer from the node to the netnode
    provided a mapping from the former to the latter.
    
    Provide a function netfs_make_node_alloc that allocates both nodes in
    a contiguous region.
    
    This reduces the memory allocation overhead when creating nodes.  It
    also makes the relation between node and netnode a simple offset
    calculation.  Provide two functions to compute the netnode address
    from the node address and vice-versa.
    
    Most notably, this makes implementing a cache on top of libnetfs
    easier.  Auxiliary data for the cache can be stored in the
    user-defined netnode, and the fat node can be used as the value.
    
    * libnetfs/make-node.c (init_node): Move initialization here.
    (netfs_make_node): Use init_node.
    (netfs_make_node_alloc): New function to allocate fat nodes.
    * libnetfs/netfs.h (netfs_make_node_alloc): New declaration.
    (_netfs_sizeof_struct_node): Likewise.
    (netfs_node_netnode): Compute netnode address from node address.
    (netfs_netnode_node): And vice-versa.
    * libnetfs/init-init.c (_netfs_sizeof_struct_node): New variable.

commit 80485401a9a5e9df03bd3a1503bc5e59d1f2e5c1
Author: Justus Winter <address@hidden>
Date:   Fri May 16 23:06:33 2014 +0200

    libdiskfs: add diskfs_make_node_alloc to allocate fat nodes
    
    libdiskfs has two kind of nodes, struct node and struct netnode.
    struct node is used to store libdiskfs specific data, while struct
    netnode contains user supplied data.  Previously, both objects were
    allocated separatly, and a pointer from the node to the netnode
    provided a mapping from the former to the latter.
    
    Provide a function diskfs_make_node_alloc that allocates both nodes in
    a contiguous region.
    
    This reduces the memory allocation overhead when creating nodes.  It
    also makes the relation between node and netnode a simple offset
    calculation.  Provide two functions to compute the netnode address
    from the node address and vice-versa.
    
    Most notably, this makes implementing a cache on top of libdiskfs
    easier.  Auxiliary data for the cache can be stored in the
    user-defined netnode, and the fat node can be used as the value.
    
    * libdiskfs/node-make.c (init_node): Move initialization here.
    (diskfs_make_node): Use init_node.
    (diskfs_make_node_alloc): New function to allocate fat nodes.
    * libdiskfs/diskfs.h (diskfs_make_node_alloc): New declaration.
    (_diskfs_sizeof_struct_node): Likewise.
    (diskfs_node_disknode): Compute disknode address from node address.
    (diskfs_disknode_node): And vice-versa.
    * libdiskfs/init-init.c (_diskfs_sizeof_struct_node): New variable.

commit 65ebcc40e55dfb3ee776383891f8a6b15b176d27
Author: Justus Winter <address@hidden>
Date:   Wed May 28 14:37:58 2014 +0200

    Do not include the terminating zero in /proc/slabinfo
    
    * rootdir.c (rootdir_gc_slabinfo): Do not zero-terminate the generated
    content.

commit 1d1da90042d2ee7a8215dc6291b54bc1ebe59fe4
Author: Justus Winter <address@hidden>
Date:   Tue May 6 19:07:13 2014 +0200

    libtrivfs: lock-less reference counting for trivfs_peropen objects
    
    * libtrivfs/trivfs.h (struct trivfs_peropen): Use refcount_t for field
    refcnt.
    (struct trivfs_control): Remove unused field lock.
    * libtrivfs/cntl-create.c (trivfs_create_control): Drop the mutex
    initialization.
    * libtrivfs/io-reauthenticate.c (trivfs_S_io_reauthenticate): Adjust
    accordingly.
    * libtrivfs/io-restrict-auth.c (trivfs_S_io_restrict_auth): Likewise.
    * libtrivfs/open.c (trivfs_open): Initialize refcnt.
    * libtrivfs/protid-clean.c (trivfs_clean_protid): Likewise.
    * libtrivfs/protid-dup.c (trivfs_protid_dup): Likewise.

commit 5b039a12bf5cfc9c65b8e169ed4503e306f971f3
Author: Justus Winter <address@hidden>
Date:   Mon May 26 12:18:08 2014 +0200

    libihash: do not use an integer hash function by default
    
    Recently libihash was changed to use an integer hash function on the
    keys in an attempt to reduce the rate of collisions (2d898893), which
    has long been assumed to be high.
    
    Richard Braun was kind enough to run some benchmarks.  He observed:
    
    "1/ Using an extremely simple microbenchmark [1] that merely inserts
    keys, either random integers or sequential ones to match the way port
    names are managed, it seems that the previous code, despite its
    apparent flaws, did quite well.
    
    [1] http://darnassus.sceen.net/gitweb/rbraun/ihtest.git
    
    Using an integer hashing function actually reduces performance on the
    sequential integer test case. It makes sense because, considering a
    set of consecutive integers starting from 0, and a hash table that
    always has more slots than items, a modulo is a perfect hash
    function. Even when taking into account that only names for receive
    rights are normally managed with libihash, i.e. that keys aren't
    actually sequential, they are almost all equally distributed, leading
    to very few collisions.
    
    Therefore, as a third option, I've removed the hashing function,
    leaving only a fast modulo (an AND) and this variant provided the best
    raw results.
    
    2/ I've also built hurd packages multiple times and got average build
    times with each variant (previous, new, new without hash function) and
    here are the results I obtained respectively : 52m59s, 52m31s, 52m22s."
    
    Do not use the integer hash function on the keys by default.
    
    * libihash/ihash.c (murmur3_mix32): Remove now unused function.
    (find_index): Use the fast division method to derive the index.
    (add_one): Likewise.  Also, update the comment to reflect the current
    hashing method.

commit b16f334192dbac002a33c31645e228d349de3c72
Author: Justus Winter <address@hidden>
Date:   Sat May 24 20:29:23 2014 +0200

    libdiskfs: fix node leak in the name cache
    
    * libdiskfs/name-cache.c (diskfs_check_lookup_cache): Release node
    reference in a special case of lookup failure.

commit 4a5f9f683e5446309a077f31d1bb8d8b77415ee2
Author: Justus Winter <address@hidden>
Date:   Fri May 23 09:54:10 2014 +0200

    trans/mtab: fix initialization
    
    * trans/mtab.c (main): Fix initialization of mtab in one-shot mode.

commit 6c15c9174134be48c57a8ac5f2ff09d0ba5f1df8
Author: Justus Winter <address@hidden>
Date:   Sun May 25 14:18:35 2014 +0200

    ext2fs: fix diskfs_pager_users
    
    This fixes a bug introduced in 86122789.
    
    * ext2fs/pager.c (diskfs_pager_users): We count file_pager_bucket,
    which does not include the disk pagers.  Fix condition accordingly.

commit 03fee0acc07c7ec484746ab60b1b55e33b9c19f9
Author: Justus Winter <address@hidden>
Date:   Sun May 25 14:37:55 2014 +0200

    libpager: drop unused fields from struct pager
    
    * libpager/priv.h (struct pager): Drop fields next, pprev.

commit 22f0bf426ae955c58edb835d6be7be44af5c029d
Author: Justus Winter <address@hidden>
Date:   Tue May 20 16:17:17 2014 +0200

    term: fix memory leak
    
    I tested this change for some days and have not experienced any
    problems with it.
    
    * term/users.c (pi_destroy_hook): Fix memory leak.

commit 1333bbbcc18502328cdd78b2aadc526ebd552a77
Author: Justus Winter <address@hidden>
Date:   Tue May 20 16:07:44 2014 +0200

    Avoid compiler warning about empty bodies
    
    Make empty bodies of control flow statements more explicit.  Doing so
    will allow us to use stricter compiler settings.  This would have
    cought 4ece292c.
    
    * console-client/xkb/xkb.c: Make empty bodies more explicit
    * libpipe/pipe.c: Likewise.
    * mach-defpager/default_pager.c: Likewise.
    * pfinet/linux-src/net/ipv4/fib_hash.c: Likewise.
    * pflocal/connq.c: Likewise.
    * pflocal/socket.c: Likewise.

commit acddf44071674746d61895d89172481f85ca8d31
Author: Justus Winter <address@hidden>
Date:   Wed May 21 13:20:29 2014 +0200

    libdiskfs: fix type of dir_cache_id, node_cache_id
    
    * libdiskfs/name-cache.c (struct lookup_cache): Fix type of
    dir_cache_id, node_cache_id.

commit 67d467a09126e9246ca7fd57ff63952577497c83
Author: Justus Winter <address@hidden>
Date:   Thu May 22 20:14:02 2014 +0200

    pfinet: add missing include
    
    *  pfinet/linux-src/include/net/addrconf.h: Include ipv6.h.

commit 31b2a835f4ed563ae34a6bc07f5fa1dec9b0fa95
Author: Justus Winter <address@hidden>
Date:   Tue May 20 16:02:59 2014 +0200

    exec: add missing includes
    
    * exec/exec.c: Include mach/gnumach.h.
    * exec/main.c: Include device/device.h.

commit dc00a94df4a06764d822b29cbf35b532343821c8
Author: Justus Winter <address@hidden>
Date:   Tue May 6 18:58:10 2014 +0200

    libdiskfs: lock-less reference counting for peropen objects
    
    * libdiskfs/diskfs.h (struct peropen): Use refcount_t for field refcnt.
    * libdiskfs/peropen-make.c (diskfs_make_peropen): Initialize refcnt.
    * libdiskfs/peropen-rele.c (diskfs_release_peropen): Adjust accordingly.
    * libdiskfs/protid-make.c (diskfs_start_protid): Likewise.  Also, the
    node must no longer be locked, adjust comment accordingly.
    (diskfs_create_protid): Likewise.

commit 122224d32894a8465a09561fc0a5220f5bb9c2c7
Author: Justus Winter <address@hidden>
Date:   Thu May 22 20:25:22 2014 +0200

    Implement /proc/slabinfo
    
    Add a node 'slabinfo' to the root directory that contains information
    about the slab allocator used in GNU Mach.
    
    The formatting code has been taken from Richard Braun's standalone
    client available here:
    
    git://darnassus.sceen.net/rbraun/slabinfo.git
    
    * rootdir.c (rootdir_gc_slabinfo): New function.
    (rootdir_entries): Add node 'slabinfo'.
    * Makefile (OBJS): Add mach_debugUser.o.
    (rootdir.o): Add an explicit dependency on mach_debug_U.h.
    Furthermore, add rules to create both functions.

commit b793108b09138edf0a963d9e3107eb400ee27011
Author: Justus Winter <address@hidden>
Date:   Thu May 22 20:04:33 2014 +0200

    include: install refcount.h
    
    * include/Makefile (installhdrs): Add refcount.h.

commit 353fe33eb2481a14dc324c7c2e52b2032df86465
Author: Justus Winter <address@hidden>
Date:   Mon May 19 16:46:33 2014 +0200

    trans/fakeroot: override fshelp_isowner
    
    As of recently, fakeroot would fail to create symlinks:
    
    % fakeroot-hurd ln -s foo a
    ln: failed to create symbolic link ‘a’: Operation not permitted
    
    Fix this by overriding fshelp_isowner.
    
    Various netfs functions will call fshelp_isowner to check whether USER
    is allowed to do some operation.  As fakeroot is not running within
    the fakeauth'ed environment, USER contains the real user.
    
    I have no explanation why this ever worked.
    
    * trans/fakeroot.c (fshelp_isowner): New function.

commit e30e04d4f5cef2af6400847b5e102b5877372f27
Author: Justus Winter <address@hidden>
Date:   Tue May 6 19:52:04 2014 +0200

    include: add lock-less reference counting primitives
    
    * include/refcount.h: New file.

commit 689b3f9b8fb68218515c05b3b7b13ff4e21c6c76
Author: Justus Winter <address@hidden>
Date:   Thu May 15 13:53:16 2014 +0200

    libihash: add hurd_ihash_get_load
    
    * libihash/ihash.c (hurd_ihash_add): Move the code computing the load
    factor of the hash table...
    * libihash/ihash.h (hurd_ihash_get_load): ... here, together with the
    comment describing the method and the rationale for chosing binary
    percent.

commit 198ab077a14511e0af5f430f89ff2b1abacb1fd6
Author: Justus Winter <address@hidden>
Date:   Thu May 15 17:57:10 2014 +0200

    libihash: fix typo
    
    * libihash/ihash.c (hurd_ihash_add): Fix typo.

commit 868a820a19ff66c370cf40573ac89738386513c3
Author: Justus Winter <address@hidden>
Date:   Fri May 16 10:13:02 2014 +0200

    proc: move translation functions to mig-decls.h
    
    * proc/hash.c (reqport_find): Move this function...
    * proc/proc.h (process_drop): ... and this...
    * proc/mig-decls.h: ... here and rename them.
    * proc/mig-mutate.h: Update accordingly.

commit 820241ead7e31082fa99f3e756c6aa73aae7d88b
Author: Justus Winter <address@hidden>
Date:   Fri May 16 13:15:03 2014 +0200

    trans/fakeroot: use C99-style struct initialization
    
    * trans/fakeroot.c (main): Use C99-style struct initialization to
    initialize argp.  This avoids a warning about missing field
    initializers.

commit 2e009c2f45dca5d8070653042c05c17aa4d0d692
Author: Justus Winter <address@hidden>
Date:   Fri May 16 13:07:40 2014 +0200

    trans/fakeroot: fix comparison between signed and unsigned
    
    * trans/fakeroot.c (netfs_attempt_chown): Fix comparison between
    signed and unsigned integer expressions.

commit 4ece292c3fba7ec8f02b057a069943a325d091db
Author: Justus Winter <address@hidden>
Date:   Fri May 16 12:50:35 2014 +0200

    trans/fakeroot: remove spurious semicolon
    
    A spurious semicolon caused a control flow bug in check_openmodes,
    leading to a port leak.
    
    * trans/fakeroot.c (check_openmodes): Remove spurious semicolon.

commit e2be8995642cd962b7d61c9c231980de88302d50
Author: Justus Winter <address@hidden>
Date:   Tue May 13 18:59:10 2014 +0200

    libihash: use fast binary scaling to determine the load
    
    Expressing the maximum load in binary percent (where 128b% corresponds
    to 100%) allows us to use fast binary scaling to determine if the
    maximum load has been reached without losing precision.
    
    Furthermore, the previously used expression 'ht->nr_items * 100'
    overflows int at 2^25 (unsigned int at 2^26).  When a hash table
    reached that limit, it would fail to resize and fill up the table.
    This change fixes that.
    
    * libihash/ihash.c (hurd_ihash_set_max_load): Update the comment.
    (hurd_ihash_add): Use fast binary scaling to determine the current
    load.
    * libihash/ihash.h (struct hurd_ihash): Update comment for max_load.
    (hurd_ihash_set_max_load): Update the comment.

commit 57341e5be12f79ee1916369679bb6507a10fcac9
Author: Justus Winter <address@hidden>
Date:   Thu May 8 18:33:57 2014 +0200

    libihash: use linear probing and fast modulo operation
    
    libihash uses open addressing.  Previously, quadratic probing in both
    directions was used to resolve collisions.  Quadratic probing might
    result in a less efficient use of caches.
    
    Also, prime numbers of the form 4 * i + 3 were used as array sizes.
    This was used in combination with the integer modulo operation for
    hashing.  It has been known for some time that libihash suffers from
    collisions, so a integer hash function is now applied to the keys to
    derive the index.
    
    Use linear probing instead.  Also, use powers of two for the array
    sizes, so a bit mask can be used for the modulo operation.
    
    * libihash/ihash.c (ihash_sizes, ihash_nsizes): Remove.
    (find_index): Use linear probing and fast modulo operation.
    (add_one): Likewise.
    * libihash/ihash.h (HURD_IHASH_MIN_SIZE): New macro.

commit 2d898893815a980f1b821fcec267eb8e7ded678e
Author: Justus Winter <address@hidden>
Date:   Thu May 8 15:45:00 2014 +0200

    libihash: use an integer hash function on the keys
    
    Use an integer hash function to derive the index from the key.  This
    should reduce the number of collisions.
    
    * libihash/ihash.c (hash_int32): New function.
    (find_index): Use hash_int32 on the key to derive the index.
    (add_one): Likewise.

commit 6dcf53606fc7d46447176aab15954a897e19d6e5
Author: Justus Winter <address@hidden>
Date:   Tue May 13 19:00:04 2014 +0200

    libihash: fix type of max_load
    
    Previously, int was used for the field max_load of struct hurd_ihash.
    There is no reason for this as far as I can tell.  Furthermore,
    hurd_ihash_set_max_load takes an unsigned int max_load.
    
    * libihash/ihash.h (struct hurd_ihash): Use unsigned int for field
    max_load.

commit 1a3d809146c95cd138bad7bd42eb923af0a23493
Author: Justus Winter <address@hidden>
Date:   Thu May 8 16:43:11 2014 +0200

    libihash: reduce the default maximum load factor to 75%
    
    The performance of hash tables depend critically on a low number of
    hash collisions.  As the table fills up, the chance of collisions
    necessarily raises.
    
    Previously, libihash resized the hash table when the load exceeded
    80%.  This seems a bit optimistic (e. g. java.util.Hashtable uses 75%
    as default).
    
    * libihash/ihash.h (HURD_IHASH_MAX_LOAD_DEFAULT): Set to 75.

commit 134b450cb65b1986c78e0b292cff78c2f1882a2b
Author: Justus Winter <address@hidden>
Date:   Thu Apr 24 17:44:14 2014 +0200

    ext2fs: cache the superblock
    
    Previously, the superblock was mmaped and a pointer stored in sblock
    by map_hypermetadata.  This memory is backed by our disk pager.
    
    This is rather unfortunate, as this means that whenever we read a
    value from that location, we might generate a request our disk pager.
    This amplifies the so-called thread-storm problem.
    
    Rather than relying on a mmaped region of memory, just use the data
    loaded by get_hypermetadata.
    
    * ext2fs/hyper.c (get_hypermetadata): Do not free sblock.
    (mapped_sblock): New variable.
    (map_hypermetadata): Map the superblock to mapped_sblock instead.
    (diskfs_set_hypermetadata): Copy superblock into mapped_superblock.
    * ext2fs/ext2fs.h (get_hypermetadata, map_hypermetadata): Adjust
    comments accordingly.

commit 261d957ebe4cf16aed76eed24b5bfd32f1f5a79a
Author: Justus Winter <address@hidden>
Date:   Wed Apr 30 01:10:05 2014 +0200

    fatfs: use two distinct pager buckets for the disk and file pager
    
    fatfs has two kinds of pagers.  One for the files, one for the disk.
    Previously, both were in the same port bucket.
    
    If a request for a file pager arrives, it most likely touches some
    metadata (like the superblock).  This is in turn backed by the disk
    pager, so another request is generated for the disk pager.
    
    Seperate all pagers clearly by using two port buckets.  This will
    enable us to use a single thread per port bucket in the future.
    
    * fatfs/pager.c (pager_bucket): Rename to...
    (disk_pager_bucket): ... this to make the change explicit at every
    occurrence.
    (file_pager_bucket): New variable.
    (service_paging_requests): New function.
    (create_fat_pager): Also create the file pager.
    (diskfs_get_filemap): Handout pagers from the file_pager_bucket.
    (diskfs_shutdown_pager): This is only concerned with the file pager.
    Simplify code accordingly.
    (diskfs_sync_everything): Likewise.
    (diskfs_pager_users): Likewise.
    (diskfs_max_user_pager_prot): Likewise.
    (disable_caching): Iterate over both buckets.
    (enable_caching): Likewise.

commit 3ad900b84497a2e619c30f76670e4757e8765f3e
Author: Justus Winter <address@hidden>
Date:   Sun May 4 12:14:58 2014 +0200

    libports: unlock _ports_lock on malloc failure
    
    * libports/bucket-iterate.c (_ports_bucket_class_iterate): Unlock
    _ports_lock on malloc failure.

commit 8612278973d167a20f4d60d018f18c6975b37cca
Author: Justus Winter <address@hidden>
Date:   Sat Apr 26 19:48:18 2014 +0200

    ext2fs: use two distinct pager buckets for the disk and file pager
    
    ext2fs has two kinds of pagers.  One for the files, one for the disk.
    Previously, both were in the same port bucket.
    
    If a request for a file pager arrives, it most likely touches some
    metadata (like the superblock).  This is in turn backed by the disk
    pager, so another request is generated for the disk pager.
    
    Seperate all pagers clearly by using two port buckets.  This will
    enable us to use a single thread per port bucket in the future.
    
    * ext2fs/pager.c (pager_bucket): Rename to...
    (disk_pager_bucket): ... this to make the change explicit at every
    occurrence.
    (file_pager_bucket): New variable.
    (service_paging_requests): New function.
    (create_disk_pager): Also create the file pager.
    (diskfs_get_filemap): Handout pagers from the file_pager_bucket.
    (diskfs_shutdown_pager): This is only concerned with the file pager.
    Simplify code accordingly.
    (diskfs_sync_everything): Likewise.
    (diskfs_pager_users): Likewise.
    (diskfs_max_user_pager_prot): Likewise.
    (disable_caching): Iterate over both buckets.
    (enable_caching): Likewise.

commit 151133a33c18e9ba103cea77a269b56c6f5cf23a
Author: Justus Winter <address@hidden>
Date:   Wed Apr 30 02:08:41 2014 +0200

    tmpfs: improve diskfs_node_iterate
    
    Currently, diskfs_node_iterate iterates twice over all nodes.  The
    first time only to determine the number of nodes.  Simply count them
    instead.
    
    * tmpfs/node.c (all_nodes_nr_items): New variable.
    (diskfs_free_node): Decrement all_nodes_nr_items.
    (diskfs_node_norefs): Likewise.
    (diskfs_cached_lookup): Increment all_nodes_nr_items.
    (diskfs_node_iterate): Fix type of sum_nodes, use all_nodes_nr_items.

commit ff9e97b120076b8707474b4580e1bab205f6dd62
Author: Justus Winter <address@hidden>
Date:   Wed Apr 30 02:04:31 2014 +0200

    fatfs: improve diskfs_node_iterate
    
    Currently, diskfs_node_iterate iterates twice over all nodes in the
    cache.  The first time only to determine the number of nodes currently
    in the cache.  Simply count them instead.
    
    * fatfs/inode.c (nodehash_nr_items): New variable.
    (diskfs_cached_lookup): Increment nodehash_nr_items.
    (diskfs_cached_lookup_in_dirbuf): Likewise.
    (diskfs_node_norefs): Decrement nodehash_nr_items.
    (diskfs_node_iterate): Fix the type of num_nodes, use nodehash_nr_items.

commit 85f3757d3ce0e9700cd647420e0257b69b91b9e9
Author: Justus Winter <address@hidden>
Date:   Tue Apr 29 18:28:22 2014 +0200

    ext2fs: improve diskfs_node_iterate
    
    Currently, diskfs_node_iterate iterates twice over all nodes in the
    cache.  The first time only to determine the number of nodes currently
    in the cache.  Simply count them instead.
    
    * ext2fs/inode.c (nodehash_nr_items): New variable.
    (diskfs_cached_lookup): Increment nodehash_nr_items.
    (diskfs_node_norefs): Decrement nodehash_nr_items.
    (diskfs_node_iterate): Fix the type of num_nodes, use nodehash_nr_items.

commit c9fa217a8ed0c167c41800e892c913c1649463a8
Author: Justus Winter <address@hidden>
Date:   Wed Apr 30 01:13:47 2014 +0200

    fatfs: simplify expression
    
    * fatfs/pager.c (add_pager_max_prot): Simplify expression.

commit 97737d1ee3ce95e45a1a4aa636cc2e11a106a9f5
Author: Justus Winter <address@hidden>
Date:   Sat Apr 26 12:20:20 2014 +0200

    libports: reduce malloc overhead in _ports_bucket_class_iterate
    
    _ports_bucket_class_iterate creates a snapshot of the buckets hash
    table.  This is done so that the lock protecting the hash table can be
    released while we iterate over the snapshot.
    
    Formerly, a linked list was used to store the snapshot.  As the
    maximal number of items is known, using an array is much simpler.
    
    _ports_bucket_class_iterate implements both ports_bucket_iterate and
    ports_class_iterate.  For this change might make ports_class_iterate
    less efficient memory-wise if the number of ports belonging to the
    class is low with respect to the number of ports in the bucket.  If
    this happens, we allocate too much.  Alleviate this by releasing
    unused memory.
    
    On the other hand, the array representation is more compact.
    Furthermore a survey of the Hurd code revealed that
    ports_class_iterate is rarely used, while ports_bucket_iterate is used
    more often, most prominently in paging code.
    
    * libports/bucket-iterate.c (_ports_bucket_class_iterate): Use an
    array instead of a linked list.

commit 453e7fc9f7116b4251d6cc5dde5110bdd183797c
Author: Justus Winter <address@hidden>
Date:   Sun Apr 27 13:52:20 2014 +0200

    ext2fs: simplify expression
    
    * ext2fs/pager.c (add_pager_max_prot): Simplify expression.

commit 749820d7dcf8ba05d025f985f0fdc17bd6658489
Author: Justus Winter <address@hidden>
Date:   Thu Apr 24 17:32:04 2014 +0200

    ext2fs: fix type of inum
    
    Previously, inum was of type int, whereas dino_ref expects ino_t.  On
    Hurd/x86 the former is 32 bit wide, the latter 64.  If dino_ref is
    inlined, this does not seem to pose a problem, but if ext2fs is
    compiled with -O0, this most likely results in an invalid memory access.
    
    * ext2fs/ialloc.c (ext2_alloc_inode): Use type ino_t for inum.

commit ceffc4581e83ce1299c96a17c9c5352f491d488d
Author: Justus Winter <address@hidden>
Date:   Sun Apr 27 08:43:17 2014 +0200

    exec: abbreviate the task name if necessary
    
    * exec/exec.c (do_exec): If the formatted task name exceeds
    TASK_NAME_SIZE, abbreviate it.

commit c62117165e685beba2f210f87d7d88f578a9322e
Author: Justus Winter <address@hidden>
Date:   Thu Apr 17 15:43:11 2014 +0200

    libports: work around bugs in server termination
    
    Some servers use ports_manage_port_operations_one_thread to process
    requests and terminate when it returns. Since many of them don't detach
    before shutting down, a client may receive an error if its request
    arrived while the server is shutting down. Prevent those spurious errors
    by forcing ports_manage_port_operations_one_thread not to return.
    
    This is the same change as 235491231bdd1fd93507c835767503f047e10b91
    introduced for ports_manage_port_operations_multithread.
    
    * libports/manage-one-thread.c
    (ports_manage_port_operations_one_thread): Force timeout to 0.

commit 80a50c59331faf268947f97ca702cb9a1d9881cd
Author: Justus Winter <address@hidden>
Date:   Sat Apr 26 13:16:23 2014 +0200

    libdiskfs: set the default sync interval to 30 seconds
    
    The default sync interval has been changed in 9e55fdd7 from 30 to 5
    seconds.  This change was not reflected in the documentation.
    
    At least for current hardware, using 30 seconds instead of just 5
    alleviates the thread-storm problem.  Make 30 seconds the default
    again.
    
    * libdiskfs/priv.h (DEFAULT_SYNC_INTERVAL): Set to 30 seconds.

commit 095e5cb398048c939b926094dcdaee6d1a7f3903
Author: Samuel Thibault <address@hidden>
Date:   Tue Apr 22 19:55:18 2014 +0200

    Add missing receiver lookup fix
    
    following 7cb7fa6b3a0d02985b4a51f7823bc1cb631d6bfa
    
    * proc/mgt.c (S_proc_exception_raise): Do not dereference e on returning
    EINVAL, the translation functions does it for us.

commit 9334b33e782dd9f514590665ed86e350d7ff8eee
Merge: 845ab0f 263118a
Author: Samuel Thibault <address@hidden>
Date:   Tue Apr 22 19:25:36 2014 +0200

    Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd

commit 845ab0f42211847b2cdd498241d5080fb155f8b7
Author: Samuel Thibault <address@hidden>
Date:   Tue Apr 22 19:23:59 2014 +0200

    Add TODO about fork() making rpctrace emit an error
    
    * utils/rpctrace.c (rewrite_right): Explain why the unknown send right
    error happens on fork().

commit 263118a6681918add6861eaede318657ee23b7c4
Author: Ludovic Courtès <address@hidden>
Date:   Sat Apr 12 18:33:35 2014 +0200

    build: Remove configure check for libcrypt.
    
    GNU libc has provided the 'crypt' function in libcrypt for a long time,
    making this check unnecessary.
    
    * configure.ac: Remove libcrypt check and 'LIBCRYPT' substitution.
    * config.make.in (LIBCRYPT): Remove.
    * trans/Makefile (password-LDLIBS): Change $(LIBCRYPT) to -lcrypt.
    * utils/Makefile (login-LDLIBS, addauth-LDLIBS, setauth-LDLIBS):
      Likewise.

commit 20e078293697dd99ddcf2c2151c9f075409cc185
Author: Justus Winter <address@hidden>
Date:   Tue Apr 15 18:38:08 2014 +0200

    Include the MIG-generated server header files
    
    This enables the compiler to check that the server function
    declarations match MIGs expectations.  Fix a few oddities along the
    way.
    
    * console-client/trans.c: Include MIG-generated server header file(s).
    * console/console.c: Likewise.  Also, fix declarations.
    * console/mutations.h (TIOCTL_IMPORTS): Just use libnetfs/priv.h.
    * console/priv.h: Delete now unused file.
    * ext2fs/storeinfo.c: Include MIG-generated server header file(s).
    * fatfs/inode.c: Likewise.
    * fatfs/main.c: Likewise.  Also, fix declaration.
    * isofs/inode.c: Likewise.
    * libdiskfs/boot-start.c: Likewise.
    * libdiskfs/file-chg.c: Include the correct MIG-generated server header 
file.
    * libdiskfs/file-chmod.c: Include MIG-generated server header file(s).
    * libdiskfs/file-get-fs-opts.c: Likewise.
    * libdiskfs/init-startup.c: Likewise.
    * libnetfs/file-get-children.c: Likewise.
    * libnetfs/file-getcontrol.c: Include the correct MIG-generated server
    header file.
    * libnetfs/file-set-translator.c: Include MIG-generated server header 
file(s).
    * libnetfs/fsstubs.c: Likewise.
    * libtrivfs/file-access.c: Likewise.
    * libtrivfs/file-chauthor.c: Likewise.
    * libtrivfs/file-chflags.c: Likewise.
    * libtrivfs/file-chg.c: Likewise.
    * libtrivfs/file-chmod.c: Likewise.
    * libtrivfs/file-chown.c: Likewise.
    * libtrivfs/file-exec.c: Likewise.
    * libtrivfs/file-get-children.c: Likewise.
    * libtrivfs/file-get-fs-options.c: Likewise.
    * libtrivfs/file-get-source.c: Likewise.
    * libtrivfs/file-get-storage-info.c: Likewise.
    * libtrivfs/file-get-trans.c: Likewise.
    * libtrivfs/file-get-transcntl.c: Likewise.
    * libtrivfs/file-getcontrol.c: Likewise.
    * libtrivfs/file-getfh.c: Likewise.
    * libtrivfs/file-getlinknode.c: Likewise.
    * libtrivfs/file-lock.c: Likewise.
    * libtrivfs/file-reparent.c: Likewise.
    * libtrivfs/file-set-size.c: Likewise.
    * libtrivfs/file-set-trans.c: Likewise.
    * libtrivfs/file-statfs.c: Likewise.
    * libtrivfs/file-sync.c: Likewise.
    * libtrivfs/file-syncfs.c: Likewise.
    * libtrivfs/file-utimes.c: Likewise.
    * libtrivfs/fsys-forward.c: Likewise.
    * libtrivfs/fsys-get-options.c: Likewise.
    * libtrivfs/fsys-getroot.c: Likewise.
    * libtrivfs/fsys-goaway.c: Likewise.
    * libtrivfs/fsys-set-options.c: Likewise.
    * libtrivfs/fsys-stubs.c: Likewise.
    * libtrivfs/fsys-syncfs.c: Likewise.
    * libtrivfs/io-async-icky.c: Likewise.
    * libtrivfs/io-async.c: Likewise.
    * libtrivfs/io-duplicate.c: Likewise.
    * libtrivfs/io-identity.c: Likewise.
    * libtrivfs/io-map.c: Likewise.
    * libtrivfs/io-modes-get.c: Likewise.
    * libtrivfs/io-modes-off.c: Likewise.
    * libtrivfs/io-modes-on.c: Likewise.
    * libtrivfs/io-modes-set.c: Likewise.
    * libtrivfs/io-owner-get.c: Likewise.
    * libtrivfs/io-owner-mod.c: Likewise.
    * libtrivfs/io-pathconf.c: Likewise.
    * libtrivfs/io-read.c: Likewise.
    * libtrivfs/io-readable.c: Likewise.
    * libtrivfs/io-reauthenticate.c: Likewise.
    * libtrivfs/io-restrict-auth.c: Likewise.
    * libtrivfs/io-revoke.c: Likewise.
    * libtrivfs/io-seek.c: Likewise.
    * libtrivfs/io-select.c: Likewise.
    * libtrivfs/io-stat.c: Likewise.
    * libtrivfs/io-stubs.c: Likewise.
    * libtrivfs/io-version.c: Likewise.
    * libtrivfs/io-write.c: Likewise.
    * pfinet/tunnel.c: Likewise.
    * storeio/io.c: Likewise.
    * storeio/storeio.c: Likewise.
    * term/users.c: Likewise.
    * tmpfs/node.c: Likewise.
    * trans/fakeroot.c: Likewise.  Also, include all server headers that provide
    the X_server_routine functions...
    (netfs_demuxer): ... that were previously declared here.
    * trans/fifo.c: Include MIG-generated server header file(s).
    * trans/firmlink.c: Likewise.
    * trans/hello-mt.c: Likewise.
    * trans/hello.c: Likewise.
    * trans/magic.c: Likewise.
    * trans/mtab.c: Likewise.
    * trans/new-fifo.c: Likewise.
    * trans/null.c: Likewise.
    * trans/proxy-defpager.c: Likewise.
    * trans/streamio.c: Likewise.
    * libdiskfs/fsmutations.h: Qualify the import with the libraries path.
    Without this change, out-of-tree builds would no longer work.
    * libnetfs/mutations.h: Likewise.
    * libtrivfs/mig-mutate.h: Likewise.

commit f1aa15a509d4249b19bb3d7f1f388829dd5135f8
Author: Justus Winter <address@hidden>
Date:   Tue Apr 15 13:54:19 2014 +0200

    libpager: fix notify_port_t receiver lookups
    
    This fixes one more occurence of a notify_port_t receiver lookup that
    I overlooked in 5a4926dd52aed56913cbe10592063ff0da753700.
    
    * libpager/no-senders.c: Include "notify_S.h" so that the compiler can
    spot such mistakes in the future.
    (_pager_do_seqnos_mach_notify_no_senders): Fix receiver lookup.

commit 5a4926dd52aed56913cbe10592063ff0da753700
Author: Justus Winter <address@hidden>
Date:   Mon Apr 14 16:39:25 2014 +0200

    libpager: fix notify_port_t receiver lookups
    
    * libpager/mig-mutate.h: Add mutators.
    * libpager/notify-stubs.c: Adjust accordingly.

commit 210793d5144562f2ab51a8b3f0969ab498a6a9c7
Author: Justus Winter <address@hidden>
Date:   Sun Apr 13 19:29:57 2014 +0200

    console: fix notify_port_t receiver lookups
    
    This complements e9687ec4ff525ae4a88314ba4ae97da770bd012f.
    
    * console/display.c: Fix receiver lookups, adjust function declarations.
    * console/mutations.h: Add NOTIFY mutators.

commit 41da689280091dcabd153b77627818b0a89645bf
Author: Justus Winter <address@hidden>
Date:   Thu Apr 10 18:48:14 2014 +0200

    boot: remove the ourdevice hack
    
    Previously, the device definitions were filtered using sed to replace
    the device_t type with mach_port_send_t to make the device argument of
    device_open polymorphic.  Rather than doing that, which makes it
    impossible to use translation functions, the definition of device_open
    has been amended.
    
    * boot/Makefile: Remove the ourdevice hack.
    * boot/boot.c: Adjust the include accordingly.

commit d49d0ac8d97e30a9b3a9140af6e9f402d39654c2
Author: Justus Winter <address@hidden>
Date:   Sat Apr 12 09:31:24 2014 +0200

    console-client: drop DIST_FILES from Makefile
    
    Since 50bfb9acf98d5f4c0c5948cc28285e990b40b659 git is used to produce
    dist tarballs.
    
    * console-client/Makefile (DIST_FILES): Do not set obsolete variable.

commit e77f00db5097d741f27c74c03d194a233f648615
Author: Justus Winter <address@hidden>
Date:   Wed Apr 9 16:55:49 2014 +0200

    libports: fix receiver lookup
    
    * libports/interrupt-operation.c (ports_S_interrupt_operation): Fix
    receiver lookup.
    * libports/mig-mutate.h: Add mutators.
    * libports/ports.h: Remove superfluous declarations.

commit ddddd501fedda7f0462702717e634f7be107bd32
Author: Justus Winter <address@hidden>
Date:   Wed Apr 9 16:53:16 2014 +0200

    hurd: add a new type interrupt_t for the interrupt protocol
    
    * hurd/hurd_types.defs (interrupt_t): New type.
    * hurd/hurd_types.h (interrupt_t): Likewise.
    * hurd/interrupt.defs (interrupt_operation): Use the new type.

commit e9687ec4ff525ae4a88314ba4ae97da770bd012f
Author: Justus Winter <address@hidden>
Date:   Sat Apr 5 17:40:24 2014 +0200

    libports: fix notify_port_t receiver lookups
    
    * libports/Makefile (MIGSFLAGS): Include mig-mutate.h.
    * libports/mig-decls.h: New file.
    * libports/mig-mutate.h: Likewise.
    * libports/notify-dead-name.c: Fix receiver lookups.
    * libports/notify-no-senders.c: Likewise.
    * libports/notify-msg-accepted.c: Adjust function declaration.
    * libports/notify-port-deleted.c: Likewise.
    * libports/notify-port-destroyed.c: Likewise.
    * libports/notify-send-once.c: Likewise.
    * libports/ports.h: Likewise.
    * proc/Makefile (MIGSFLAGS): Include mig-mutate.h, move PROCESS mutators...
    * proc/mig-mutate.h: ... into a new file, add NOTIFY mutators.
    * proc/notify.c: Fix receiver lookups, adjust function declarations.
    * term/devio.c (ports_do_mach_notify_send_once): Adjust accordingly.

commit e27425e63392683b85101961489a83e0abef133b
Author: Justus Winter <address@hidden>
Date:   Fri Apr 4 18:17:54 2014 +0200

    libdiskfs: fix receiver lookup
    
    * libdiskfs/Makefile (exec_startup-MIGSFLAGS): New variable.
    * libdiskfs/diskfs.h (struct bootinfo): New struct declaration.
    (diskfs_begin_using_bootinfo_port): New function.
    (diskfs_end_using_bootinfo): Likewise.
    * libdiskfs/fsmutations.h: Add mutators for exec_startup_t.
    * libdiskfs/priv.h (bootinfo_t): New type declaration to appease mig.
    * libdiskfs/boot-start.c (S_exec_startup_get_info): Fix receiver lookup.

commit f274c66b2141aca0f332e272b77cd0a048cef7f6
Author: Justus Winter <address@hidden>
Date:   Fri Nov 29 12:35:13 2013 +0100

    exec: fix receiver lookup
    
    * exec/Makefile (exec_startup-MIGSFLAGS): New variable.
    * exec/execmutations.h: Add mutators for exec_startup_t.
    * exec/mig-decls.h: New file.
    * exec/priv.h (bootinfo_t): New type declaration to appease mig.
    * exec/exec.c (S_exec_startup_get_info): Fix receiver lookup.

commit b939d0b64ac0cfb90e672386a8586a5515ebcd16
Author: Justus Winter <address@hidden>
Date:   Fri Apr 4 17:11:21 2014 +0200

    hurd: add a new type for the exec_startup protocol
    
    * hurd/hurd_types.defs (exec_startup_t): New type.
    * hurd/hurd_types.h (exec_startup_t): Likewise.
    * hurd/exec_startup.defs: Honor EXEC_STARTUP_IMPORTS.
    (exec_startup_get_info): Use the new type as receiver.

commit 7b31485553ed6a1cbc1ddde0ae3e678e404d1f97
Merge: 58f78ea b7cbdde
Author: Samuel Thibault <address@hidden>
Date:   Fri Apr 4 22:57:30 2014 +0200

    Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd

commit 58f78ea0c81a106cb2b9220eb9290bef15466cd9
Author: Samuel Thibault <address@hidden>
Date:   Fri Apr 4 20:55:34 2014 +0200

    Fix spurious unlock on error
    
    Thanks Cyril Roelandt for finding the issue.
    
    * libdiskfs/dir-renamed.c (diskfs_rename_dir): On diskfs_lookup error,
    set fnp to NULL to avoid unlocking it spuriously.

commit b7cbdde8854ee4c51ec9cd49ce639bd02d646355
Author: Justus Winter <address@hidden>
Date:   Mon Mar 3 20:48:20 2014 +0100

    libpager: fix receiver lookups
    
    Previously, the receiver lookup was done manually in all the server
    functions.  Use mig translator functions instead.
    
    * libpager/mig-decls.h: New file.
    * libpager/mig-mutate.h: Likewise.
    * libpager/Makefile (MIGSFLAGS): Include mig-mutate.h.
    * libpager/chg-compl.c: Fix receiver lookups.
    * libpager/data-request.c: Likewise.
    * libpager/data-return.c: Likewise.
    * libpager/data-unlock.c: Likewise.
    * libpager/lock-completed.c: Likewise.
    * libpager/object-init.c: Likewise.
    * libpager/object-terminate.c: Likewise.
    * libpager/stubs.c: Likewise.
    * libpager/seqnos.c (_pager_update_seqno): Move the actual
    functionality...
    (_pager_update_seqno_p): ... into a new function that can be called
    with a pointer to struct pager.
    * libpager/priv.h (_pager_update_seqno_p): New declaration.

commit 64b5d358fcaa039ca2e7634aceaa5ed4c3a10cc4
Author: Samuel Thibault <address@hidden>
Date:   Wed Mar 26 04:09:39 2014 +0100

    Handle fonts with multiple-of-8 bbox width
    
    * console-client/vga-dynafont.c (dynafont_new): When the bbox width of
    the font is a multiple of 8, set width to 8.  Reject any other value
    than 8 or 9 with EINVAL.

commit 17126af519bf8e43ecef76c4ebd7f205c4c4daa8
Author: Samuel Thibault <address@hidden>
Date:   Wed Mar 26 04:05:27 2014 +0100

    Fix setting LGE flag
    
    * console-client/vga-support.c (vga_set_font_width): Fix setting the
    `VGA_ATTR_MODE_LGE' flag.

commit f5fb893ef5db2bf0e70aa0ba108c9d189fea607b
Merge: 25ae24c 07e46eb
Author: Samuel Thibault <address@hidden>
Date:   Wed Mar 26 03:49:07 2014 +0100

    Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd

commit 25ae24c53dbada6be01791c5f15b26d103ee588d
Author: Samuel Thibault <address@hidden>
Date:   Wed Mar 26 03:44:57 2014 +0100

    Align VGA buffers
    
    Some "hardware" (such as kvm on linux 3.2) would hang when transferring
    between video memory and unaligned main memory.  This also allows
    better optimized transfers anyway.
    
    Thanks Petter Reinholdtsen for the report and patient tests.
    
    * console-client/vga-support.c (vga_state): Force maximum alignment of
    `videomem' and `fontmem' fields.

commit 07e46eb2e25583f0f3e06342f0c854769b353b10
Author: Justus Winter <address@hidden>
Date:   Sat Mar 15 14:06:15 2014 +0100

    mach-defpager: replace the magic typecast with a hash table
    
    Previously, the mach-defpager used a "magic typecast" for object
    lookups.  It renamed the port to the address of the associated object,
    and upon receiving a message it would cast the port name back to a
    pointer.
    
    While this might seem like an optimization, it actually makes the port
    handling in the kernel less efficient.  Ports with small continuous
    names are stored in an array, while other ports get spilled in a splay
    tree.
    
    Replace the linked list of default_port_t objects with a hash table.
    Do not rename the ports, rather use the hash table to lookup objects
    associated with ports.
    
    * mach-defpager/default_pager.c (struct pager_port): Replace queue
    with hash table, remove count, move type declaration to priv.h.
    (pager_port_list_init): Adjust accordingly.
    (pager_port_list_insert): Likewise.
    (pager_port_list_delete): Likewise.
    (destroy_paging_partition): Replace queue_iterate with HURD_IHASH_ITERATE.
    (S_default_pager_objects): Likewise.
    (S_default_pager_object_pages): Likewise.
    (seqnos_memory_object_create): Do not rename the port but store it in
    the hash table.
    (S_default_pager_object_create): Likewise.
    * mach-defpager/priv.h (struct dstruct): Add fast-removal pointer.
    (pnameof): Remove obsolete macro definition.
    (dnameof): Likewise.
    * mach-defpager/mig-decls.h (begin_using_default_pager): Replace the
    magic typecast with a hash table lookup.
    * mach-defpager/Makefile (HURDLIBS): Add ihash.

commit 6d5511668545d00da4e3e5dd142b4f082c76b083
Author: Justus Winter <address@hidden>
Date:   Sat Mar 15 14:38:04 2014 +0100

    mach-defpager: fix local includes
    
    * mach-defpager/default_pager.c: Fix local includes.
    * mach-defpager/main.c: Likewise.
    * mach-defpager/setup.c: Likewise.

commit 1e981ffc8654910d868bac129c48b1381b935945
Author: Justus Winter <address@hidden>
Date:   Wed Mar 5 18:44:10 2014 +0100

    mach-defpager: fix receiver lookups
    
    Previously, the receiver lookup was done manually in all the server
    functions.  Use mig translator functions instead.
    
    * mach-defpager/mig-decls.h: New file.
    * mach-defpager/mig-mutate.h: Likewise.
    * mach-defpager/Makefile (MIGSFLAGS): Include mig-mutate.h.
    * mach-defpager/mach-defpager.c: Fix receiver lookups, move type
    definitions...
    * mach-defpager/priv.h: ... here, so that they can be used in
    mig-decls.h.

commit 71ee95fecd6b8afb2b19914b2395f63c44a8e812
Author: Justus Winter <address@hidden>
Date:   Fri Mar 7 20:31:14 2014 +0100

    hurd: fix receiver type, honor DEFAULT_PAGER_IMPORTS
    
    * hurd/default_pager.defs: Honor DEFAULT_PAGER_IMPORTS.
    (default_pager_object_set_size): Fix receiver type.

commit 52fdfc82a1ceef6251f816c64fc64fc78bd9b3e8
Author: Justus Winter <address@hidden>
Date:   Thu Mar 20 13:34:02 2014 +0100

    libdiskfs: fix string termination
    
    Found using the Clang Static Analyzer.
    
    * libdiskfs/fsys-getroot.c (diskfs_S_fsys_getroot): Fix string
    termination.

commit 2d9c5530456fce1b047fedf83ff48412509b7164
Author: Justus Winter <address@hidden>
Date:   Thu Mar 20 13:31:42 2014 +0100

    isofs: also copy the terminating zero in read_symlink_hook
    
    * isofs/inode.c (read_symlink_hook): Use memcpy, also copy terminating
    zero.

commit 59b6c01edcd7013a112aeaf9d0bc33a8d2a2b8f1
Author: Justus Winter <address@hidden>
Date:   Wed Mar 19 12:09:23 2014 +0100

    libpager: fix potential deadlock
    
    This patch releases the interlock before doing an rpc call, analogous
    to 901c61a1d25e7c8963e51012760a82730eda1910.
    
    * libpager/pager-attr.c (pager_change_attributes): Release interlock
    before calling memory_object_change_attributes, to let the callbacks
    take it.

commit 08814fc43536cb801b1db0c548bcc19b67b19dd4
Author: Justus Winter <address@hidden>
Date:   Wed Mar 19 12:13:57 2014 +0100

    libpager: fix comment of pager_change_attributes
    
    * libpager/pager-attr.c: Fix comment.
    * libpager/pager.h: Likewise.

commit 7b054153eccbf0843fbbfb131855f56ea5c695e0
Author: Gabriele Giacone <address@hidden>
Date:   Thu Mar 20 10:44:20 2014 +0100

    Make bz2 and gz support optional
    
    * config.make.in (HAVE_LIBBZ2, HAVE_LIBZ): New variables.
    * configure.ac (--without-libbz2, --without-libz): New options.
    * ext2fs/Makefile (OTHERLIBS): Make -lbz2 and -lz optional.
    * fatfs/Makefile (OTHERLIBS): Likewise.
    * isofs/Makefile (OTHERLIBS): Likewise.
    * libstore/Makefile (maybe_part): Remove variable.
    (store-types): Add part, bunzip2 and gunzip support conditionnally.
    (LDLIBS): Make -lbz2 and -lz optional.
    (OBJS): Add GUNZIP_OBJS and BUNZIP2_OBJS optional.

commit 2294f2fdffcf724cc28653976b8029351e41fd77
Author: Samuel Thibault <address@hidden>
Date:   Sun Mar 16 20:04:11 2014 +0100

    Fix handling of console readlink errors
    
    * console-client/trans.c (netfs_attempt_lookup): Look for errors returned by
    `readlink' before allocating a node.
    (netfs_attempt_readlink): Look for errors returned by `readlink'.

commit e5e577cc30171232ca9a9ca6fd6f97e3d59539a1
Author: Samuel Thibault <address@hidden>
Date:   Sun Mar 16 20:02:08 2014 +0100

    Fix vcs_readlink propagating error returned by console_current_id
    
    * console-client/current-vcs.c (vcs_readlink): Return error returned by
    `console_current_id' as a negative value.

commit a13a5288214c6dbb25bd8da04057f8ff17750ec1
Author: Samuel Thibault <address@hidden>
Date:   Sun Mar 16 19:45:34 2014 +0100

    Fix crash on accessing vcs without a console being active
    
    * console-client/current-vcs.c (vcs_readlink): Return error as negative
    values.
    (vcs_read): Convert errors returned by vcs_readlink before returning
    them.

commit 8ad7f49e5b5e9a254f73de53941a58fc6032a737
Merge: 4097dab cc97574
Author: Samuel Thibault <address@hidden>
Date:   Sun Mar 16 18:16:02 2014 +0100

    Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd

commit 4097daba7e43b3a1a3af77a715da1a2418d30392
Author: Samuel Thibault <address@hidden>
Date:   Sun Mar 16 18:13:58 2014 +0100

    Fix crash on opening /dev/kbd or mouse without any console being active
    
    * console-client/console.c (console_switch_away): Check for `active_vcons`
    being NULL before saving the currently active console.

commit cc9757407fa124998613329ce73c5bba98d5cf21
Author: Justus Winter <address@hidden>
Date:   Wed Mar 12 15:09:44 2014 +0100

    mach-defpager: silently ignore requests to page to active partition
    
    Currently, if mach-defpager is asked to page to an already active
    partition, it ignores this request and returns success.  It does,
    however, print a message about this to stdout.
    
    This message might indicate to the user that there is some kind of a
    problem with the configuration of the machine, even though the code in
    new_partition clearly does not consider it an error to do such an
    request.
    
    * mach-defpager/default_pager.c (new_partition): Do not print a
    message if requested to page to an already active partition.

commit 109169ca9d8835227cbfcf2c2da5434232e2c6ec
Author: Justus Winter <address@hidden>
Date:   Wed Mar 12 15:06:20 2014 +0100

    mach-defpager: fix type of size arguments
    
    * mach-defpager/default_pager.c (new_partition): Fix type of bsize.
    * mach-defpager/file_io.h (page_read_file_direct): Fix type of size 
argument.
    (page_write_file_direct): Likewise.
    * mach-defpager/setup.c (page_read_file_direct): Likewise.
    (page_write_file_direct): Likewise.

commit a77077efbd5658a39538557911fccca9da5a81ab
Author: Justus Winter <address@hidden>
Date:   Wed Mar 12 13:22:53 2014 +0100

    mach-defpager: fix warnings about uninitialized variables
    
    * mach-defpager/default_pager.c (S_default_pager_objects): Initialize
    address, size-pairs to 0.
    (S_default_pager_object_pages): Likewise.
    * mach-defpager/kalloc.c (kget_space): Likewise.

commit 3deb2d7685f9e9b502a992491f747c3a657e4d15
Author: Justus Winter <address@hidden>
Date:   Wed Mar 12 13:10:04 2014 +0100

    mach-defpager: fix warning about uninitialized variable
    
    Previously, failure to look up the given partition was detected after
    the loop by checking whether the loop ran over all existing
    partitions.  Initialize part to NULL and check for that instead.  This
    retains the behavior, but expresses it in a way the compiler
    understands better.
    
    * mach-defpager/default_pager.c (destroy_paging_partition): Initialize
    part to NULL and check for it still being NULL after the loop.

commit f3d9cf9f788e5b98d270309c03f44b26568944eb
Author: Justus Winter <address@hidden>
Date:   Wed Mar 12 13:00:16 2014 +0100

    mach-defpager: fix error handling in S_default_pager_object_set_size
    
    Fix a compiler warning about kr being potentially being uninitialized.
    
    * mach-defpager/default_pager.c (S_default_pager_object_set_size):
    Initialize kr.

commit 727d2825675e9d67999a15d2e9903bf8af854395
Author: Justus Winter <address@hidden>
Date:   Wed Mar 12 12:20:00 2014 +0100

    mach-defpager: add and use synchronized_printf for dprintf
    
    * mach-defpager/default_pager.c (synchronized_printf): New function.
    (printf_lock): Move to synchronized_printf.
    (dprintf): Use synchronized_printf.
    (ddprintf): Likewise.

commit 6f1fa0884602c05fba05c14cd6eb6884ba928e8e
Author: Justus Winter <address@hidden>
Date:   Wed Mar 12 11:54:23 2014 +0100

    mach-defpager: fix warnings about unused variables
    
    * mach-defpager/default_pager.c (pager_alloc): Declare variables only
    when needed.
    (dealloc_direct): Remove unused variables.
    (seqnos_memory_object_terminate): Remove unused variable, adjust
    ddprintfs accordingly.
    (seqnos_memory_object_data_write): Remove unused variable.

commit 653a408caabea249e4791dedfa433400dad90713
Author: Justus Winter <address@hidden>
Date:   Wed Mar 12 11:40:08 2014 +0100

    mach-defpager: remove comments around form feeds
    
    Form feed characters (\f) are whitespace and are treated as such by c
    compilers.  There is no need to enclose them in comments.
    
    * mach-defpager/default_pager.c: Remove comments around form feeds.

commit cff25ce181b3a330f12809373407f4d54f4cc5c4
Author: Justus Winter <address@hidden>
Date:   Sat Mar 1 12:26:59 2014 +0100

    auth: improve the mig mutator functions
    
    Previously, the mig mutator function auth_port_to_handle was defined
    in auth.c (fakeauth.c), preventing it from being inlined into the
    mig-generated server functions.  Put it in mig-decls.h instead.
    Rename authmutations.h to mig-mutate.h, auth_mig.h to mig-decls.h.
    This is the naming convention used for pflocal.
    
    * auth/auth.h: New file.
    * auth/auth_mig.h: Rename to mig-decls.h, add copyright notice, define
    mutator functions.
    * auth/authmutations.h: Rename to mig-mutate.h, restore copyright
    notice, adjust accordingly.
    * auth/auth.c: Include auth.h, remove auth_port_to_handle.
    * utils/fakeauth.c: Likewise.
    * auth/Makefile: Adjust accordingly.
    * utils/Makefile: Likewise.

commit 666830d8a75a3676f60b48028b115edb19d06cc7
Author: Justus Winter <address@hidden>
Date:   Sat Mar 1 11:55:50 2014 +0100

    trans/ifsock: fix receiver lookup
    
    * trans/Makefile: Add ifsock-MIGSFLAGS.
    * trans/ifsock.c (S_ifsock_getsockaddr): Fix receiver lookup.

commit e3a2c2caeea0a4f4d36b1117610d2a32d14ac69b
Author: Justus Winter <address@hidden>
Date:   Fri Feb 28 11:47:10 2014 +0100

    term: fix receiver lookups in the term server functions
    
    * term/mig-mutate.h: Define TERM_IMPORTS.
    * term/Makefile: Set term-MIGSFLAGS.
    * term/users.c: Fix receiver lookups in the term server functions.

commit 20d3ffa76a849e2105e72e6b7c8835de5e9c1b21
Author: Justus Winter <address@hidden>
Date:   Fri Feb 28 11:26:07 2014 +0100

    term: fix receiver lookups in the tioctl server functions
    
    * term/mig-mutate.h: New file.
    * term/Makefile: Set tioctl-MIGSFLAGS.
    * term/ptyio.c: Fix receiver lookups in the tioctl server functions.
    * term/users.c: Likewise.

commit a876dbadbb1fa625e3e5fa8bdffe803e6eb473d1
Author: Justus Winter <address@hidden>
Date:   Thu Feb 27 16:39:31 2014 +0100

    pfinet: fix receiver lookups in iioctl-ops.c
    
    * pfinet/iioctl-ops.c: Fix receiver lookups.
    * pfinet/mig-mutate.h: Add IIOCTL_IMPORTS.
    * pfinet/Makefile: Set iioctl-MIGSFLAGS.

commit a8c50b3fbe672ea949a5c6c26c6db04566a7cdb7
Author: Justus Winter <address@hidden>
Date:   Thu Feb 27 16:36:18 2014 +0100

    hurd: add IIOCTL_IMPORTS
    
    * hurd/iioctl.defs: Add IIOCTL_IMPORTS.

commit 8287b6ffdf2cb631591decb17429701218122259
Author: Justus Winter <address@hidden>
Date:   Tue Feb 25 01:01:09 2014 +0100

    libtrivfs: improve the mig mutator functions
    
    Previously, the mig mutator functions were in migsupport.c, preventing
    them from being inlined into the mig-generated server functions.  Put
    them in mig-decls.h instead.  Rename mutations.h to mig-mutate.h.
    This is the naming convention used for pflocal.
    
    * libtrivfs/fsmutations.h: Rename to mig-mutate.h, adopt imports.
    * libtrivfs/Makefile: Adopt accordingly.
    * libtrivfs/migsupport.c: Rename to mig-decls.h.
    * libtrivfs/trivfs.h: Move dynamic classes/buckets declarations to
    mig-decls.h, remove superfluous imports.
    * exec/execmutations.h: Fix import.
    * pfinet/mig-mutate.h: Likewise.
    * trans/Makefile: Likewise.

commit e5583e10eed68f75e8981571d322b553b784dd5b
Author: Justus Winter <address@hidden>
Date:   Tue Feb 25 00:24:52 2014 +0100

    pfinet: improve the mig mutator functions
    
    Previously, the mig mutator functions were in misc.c, preventing them
    from being inlined into the mig-generated server functions.  Put them
    in mig-decls.h instead.  Rename mutations.h to mig-mutate.h.  This is
    the naming convention used for pflocal.
    
    * pfinet/mutations.h: Rename to mig-mutate.h, adopt imports.
    * pfinet/Makefile: Adopt accordingly.
    * pfinet/mig-decls.h: New file.
    * pfinet/misc.c: Move mutator functions to mig-decls.h.
    * pfinet/pfinet.h: Move type declarations to mig-decls.h, remove
    mutator declarations.
    * pfinet/iioctl-ops.c: Include mig-decls.h.

commit 86e3141aaf13b1bc55d74bd6f557a62b814e944c
Author: Justus Winter <address@hidden>
Date:   Wed Jan 29 14:06:15 2014 +0100

    libdiskfs: fix receiver lookups in fsys server functions
    
    * libdiskfs/diskfs.h (struct diskfs_control): New declaration.
    (diskfs_begin_using_control_port): New declaration and function.
    (diskfs_end_using_control_port): Likewise.
    * libdiskfs/fsmutations.h: Add translation functions.
    * libdiskfs/priv.h (control_t): New type declaration for mig.
    * libdiskfs/boot-start.c: Fix receiver lookups.
    * libdiskfs/fsys-getfile.c: Likewise.
    * libdiskfs/fsys-getroot.c: Likewise.
    * libdiskfs/fsys-goaway.c: Likewise.
    * libdiskfs/fsys-options.c: Likewise.
    * libdiskfs/fsys-syncfs.c: Likewise.

commit 982261fec4707d0c8d0723d90d9c0e465d98aa93
Author: Justus Winter <address@hidden>
Date:   Wed Feb 12 11:24:14 2014 +0100

    libnetfs: fix receiver lookups in fsys server functions
    
    * mutations.h: Add translation functions.
    * netfs.h (struct netfs_control): New declaration.
    * priv.h: Define translation functions.
    * fsys-get-options.c: Fix receiver lookups.
    * fsys-getroot.c: Likewise.
    * fsys-goaway.c: Likewise.
    * fsys-set-options.c: Likewise.
    * fsys-syncfs.c: Likewise.
    * fsysstubs.c: Likewise.

commit 41b88dab57df5a1b490550fd8c4b80788ce55a81
Author: Justus Winter <address@hidden>
Date:   Thu Jan 30 10:58:49 2014 +0100

    New RPCs, fix build

commit f2fd58347765c32fddd45b9dbd87097ad73b2001
Author: Justus Winter <address@hidden>
Date:   Tue Feb 11 13:30:07 2014 +0100

    trans/mtab: do not map unknown source strings to "none"
    
    Previously, map_device_to_path mapped unknown device strings to
    "none".  Return a copy of the original source string instead so that
    e.g. nfs mount point points are properly handled.
    
    * trans/mtab.c (map_device_to_path): Do not map unknown source strings
    to "none".

commit 90af50dd30c2ea0abec10b36d5b3fbf29fec2b16
Author: Justus Winter <address@hidden>
Date:   Tue Feb 11 13:24:23 2014 +0100

    tmpfs: set diskfs_disk_name to "none"
    
    By default diskfs_disk_name is returned as the source of
    libdiskfs-based translators.  Hurds fstab allows multiple entries with
    the mnt_fsname being "none".
    
    * tmpfs/tmpfs.c (diskfs_disk_name): Set to "none".

commit 1b35145ee6592ba9e4017b7b2686edb312e79ad2
Author: Justus Winter <address@hidden>
Date:   Mon Feb 10 14:33:27 2014 +0100

    trans/mtab: ignore translators that do not implement file_get_source
    
    Previously, the mtab translator would guess the source of a filesystem
    translator from its last argument.  This made all kinds of
    non-filesystem translators appear in /proc/mounts, causing severe
    problems due to umount --all removing vital passive translator
    records.
    
    Fix this by ignoring all translators that do not explicitly implement
    file_get_source.
    
    * trans/mtab.c (mtab_populate): Ignore translators that do not
    implement file_get_source.

commit 8eb1240c18062bd3614ecba31f4c6a2dc6ea980d
Author: Justus Winter <address@hidden>
Date:   Mon Feb 10 15:02:15 2014 +0100

    nfs: implement netfs_get_source
    
    Implement netfs_get_source so that nfs translators show up in
    /proc/mounts.
    
    * nfs/main.c (netfs_get_source): New function.

commit 9366d6b2e48ba409366adc0516825c41a86dec9b
Author: Justus Winter <address@hidden>
Date:   Thu Jan 30 10:53:46 2014 +0100

    hurd: fix the get-children and get-source procedures
    
    * hurd/fs.defs: Add file_get_children and file_get_source.
    * hurd/fsys.defs: Remove fsys_get_children and fsys_get_source.
    * libdiskfs/fsys-get-children.c: Rename and adapt accordingly.
    * libdiskfs/fsys-get-source.c: Likewise.
    * libnetfs/fsys-get-children.c: Likewise.
    * libnetfs/fsys-get-source.c: Likewise.
    * libtrivfs/fsys-get-children.c: Likewise.
    * libtrivfs/fsys-get-source.c: Likewise.
    * libdiskfs/diskfs.h: Adapt prototype and comment.
    * libnetfs/netfs.h: Likewise.
    * libtrivfs/trivfs.h: Likewise.
    * libdiskfs/get-source.c: Adapt default implementation, provide
    diskfs_disk_name by default.
    * libnetfs/netfs.h: Adapt default implementation.
    * libtrivfs/get-source.c: Likewise.
    * libdiskfs/Makefile: Adapt accordingly.
    * libnetfs/Makefile: Likewise.
    * libtrivfs/Makefile: Likewise.
    * trans/symlink.c: Likewise.
    * trans/mtab.c: Likewise.

commit d4129a39dda08e8cfbc002461e1e76103de8f108
Author: Justus Winter <address@hidden>
Date:   Mon Feb 24 13:31:31 2014 +0100

    mach-defpager: improve the default_pager_demux_object function
    
    Handle multiple request types as recommended by the Mach Server
    Writer's Guide section 4, subsection "Handling Multiple Request
    Types".  This avoids initializing the reply message in every X_server
    function.
    
    * mach-defpager/default_pager.c (default_pager_demux_object): Improve
    the demuxer function.

commit b7521a33ad61286eb9e32915c3a691c824bae719
Author: Justus Winter <address@hidden>
Date:   Mon Feb 24 13:57:40 2014 +0100

    mach-defpager: add function mig_reply_setup
    
    Currently, mig_reply_setup is not provided by libmachuser or the
    glibc.  Provide it locally.
    
    * mach-defpager/default_pager.c (mig_reply_setup): New function.

commit d1f23fd4732f9407dfd80e15588070d920050d9f
Author: Justus Winter <address@hidden>
Date:   Mon Feb 24 13:47:36 2014 +0100

    mach-defpager: fix definition of seqnos_memory_object_data_unlock
    
    * mach-defpager/default_pager.c (seqnos_memory_object_data_unlock):
    Fix function arguments.

commit 6d38ec6d31e295b60bd5c84cc89229484afed56a
Author: Justus Winter <address@hidden>
Date:   Mon Feb 24 12:23:05 2014 +0100

    libpager: improve the pager_demuxer function
    
    Handle multiple request types as recommended by the Mach Server
    Writer's Guide section 4, subsection "Handling Multiple Request
    Types".  This avoids initializing the reply message in every X_server
    function.  The reply message has already been properly initialized in
    libports, so there is no need to call mig_reply_setup.
    
    * libpager/demuxer.c (pager_demuxer): Improve the demuxer function.

commit f2640263468aced5c91ac5fc1f15bb5691f7eb20
Author: Justus Winter <address@hidden>
Date:   Mon Feb 24 11:05:13 2014 +0100

    utils/umount: do not remove passive translator records
    
    Passive translator records are a Hurd concept.  Therefore, the umount
    compatibility program should not remove them.
    
    * utils/umount.c (passive_flags): Unset FS_TRANS_SET.
    (doc): Adjust accordingly.

commit 139cc36c4f24dbc8c759f6bc3fba536698db6e03
Author: Samuel Thibault <address@hidden>
Date:   Tue Feb 25 01:48:14 2014 -0500

    Fix fakeroot and remap parsing corner cases
    
    Fix case when $PWD contains spaces.
    Pass directly arguments to command, to directly avoid escaping issues.
    Based on suggestion by Ivan Shmakov <address@hidden>
    
    * utils/fakeroot.sh (TARGET): Do not define.
    (sh): Rather pass PWD and commandline as parameters.
    * utils/remap.sh: Likewise.

commit 4473d16e7cdad08eccad95f5920e1aa171d5512d
Author: Justus Winter <address@hidden>
Date:   Fri Feb 21 14:58:21 2014 +0100

    exec: provide a meaningful name for new tasks
    
    The name will be used in error messages printed by the kernel.  This
    makes attributing the errors to processes possible.
    
    * exec/exec.c (do_exec): Set the name of the new task.

commit c3936e8c1b40cbe2e88c7930a99728cab95d2528
Author: Richard Braun <address@hidden>
Date:   Sat Feb 22 17:24:42 2014 +0100

    pfinet: set a non-zero ports management timeout
    
    * pfinet/main.c (main): Call ports_manage_port_operations_multithread
    with non-zero timeouts.

commit 235491231bdd1fd93507c835767503f047e10b91
Author: Richard Braun <address@hidden>
Date:   Sat Feb 22 17:16:17 2014 +0100

    libports: work around bugs in server termination
    
    Most servers use ports_manage_port_operations_multithread to process
    requests and terminate when it returns. Since many of them don't detach
    before shutting down, a client may receive an error if its request
    arrived while the server is shutting down. Prevent those spurious errors
    by forcing ports_manage_port_operations_multithread not to return.
    
    * libports/manage-multithread.c
    (ports_manage_port_operations_multithread): Force global_timeout to 0.

commit dd07e7f7ddb5d704599f798a8ef3d1c8a05cb9bf
Author: Ignazio Sgalmuzzo <address@hidden>
Date:   Wed Feb 19 20:07:40 2014 +0000

    libstore: fixed some pointer-sign related warnings
    
    libstore/do-bunzip2.c: fixed type modifier, avoiding cast

commit 91090f8e8ef533ad39fc8060bbf1a69bcb0b5af7
Author: Samuel Thibault <address@hidden>
Date:   Tue Feb 18 21:34:08 2014 -0800

    Add missing copyright notice

commit 2a685b05f91f71c3b00ee8890ebaed16839b0cd0
Author: Ignazio Sgalmuzzo <address@hidden>
Date:   Mon Feb 17 22:21:31 2014 +0000

    libstore: replaced gz decompression code with libz
    
    Note: dropped .zip support
    
    configure.ac: added check for libz
    ext2fs/Makefile: linked libz
    fatfs/Makefile: linked libz
    isofs/Makefile: linked libz
    libstore/Makefile: linked libz
    libstore/do-gunzip.c: new decompression function using libz calls.
    libstore/gunzip.c: removed no longer needed code replaced by do_gunzip()
    libstore/gzip.h: deleted, no longer needed
    libstore/inflate.c: deleted: no longer needed
    libstore/tailor.h: deleted: no longer needed
    libstore/unzip.c: deleted: no longer needed
    libstore/util.c: removed no longer needed code.

commit 8132295cfd2d26a13a6cd2f61b7f5c56ea5efaa7
Merge: 883a7ad da158a4
Author: Samuel Thibault <address@hidden>
Date:   Tue Feb 18 21:32:54 2014 -0800

    Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd

commit 883a7ad93fd5a4dd0ca71d461d0624a898ad6865
Author: Samuel Thibault <address@hidden>
Date:   Tue Feb 18 21:31:58 2014 -0800

    Add missing copyright notice

commit da158a449e7ddb7f06fda929d7030ff8496e71bc
Author: Justus Winter <address@hidden>
Date:   Tue Feb 11 19:03:26 2014 +0100

    libdiskfs: fix typo
    
    * libdiskfs/boot-start.c (diskfs_S_fsys_init): Fix typo.

commit bfa5d8f54612811d306d1453b7d2da549bbc60ee
Author: Samuel Thibault <address@hidden>
Date:   Thu Feb 13 02:27:49 2014 +0100

    Add --font-width option to force 8/9 pixel font width
    
    This permits to choose between 720x400 or 640x400 textmode without
    changing the font.
    
    * console-client/vga-hw.h (VGA_ATTR_MODE_ADDR, VGA_ATTR_MODE_LGE,
    VGA_ATTR_ENABLE_ADDR): New macros.
    * console-client/vga-support.c (vga_state): Add `attr_mode' field.
    (vga_init): Save attribute mode subregister content.  Re-enable the
    screen after that.
    (vga_fini): Restore attribute mode subregister content.  Re-enable the
    screen after that.
    (vga_set_font_width): When the font width is set to 9, enable VGA LGE to
    properly handle box-drawing unicode characters.  Re-nable the screen
    after that.
    (vga_exchange_palette_attributes): Use VGA_ATTR_ENABLE_ADDR macro
    instead of harcoded 0x20.
    * console-client/vga-dynafont.h (dynafont_new): Add `width' parameter.
    * console-client/vga-dynafont.c (dynafont): Add `width' field.
    (dynafont_new): Add `width' parameter, stored in `width' field of `df',
    but using the font bbox as default value.  Use it to decide whether to
    use VGA LGE or not.
    (dynafont_activate): Use `width' field of `df' instead of the font bbox
    to configure the VGA glyph width.
    * console-client/vga.c (vga_display_font_width): New variable.
    (vga_display): New `df_width' field.
    (argp_option): New `font-width' option.
    (parse_opt): Handle `font-width' option.
    (vga_display_init): Copy `vga_display_font_width' to `disp'.
    (vga_display_start): Pass `df_width' to `dynafont_new'.

commit c8b5250cc50a3451ecce9685d8b3457b3c1b133d
Merge: d1a48bc ab9163f
Author: Samuel Thibault <address@hidden>
Date:   Wed Feb 12 19:28:10 2014 +0100

    Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd

commit d1a48bcce645417a983a4c96090ed70e860915b4
Author: Samuel Thibault <address@hidden>
Date:   Wed Feb 12 19:27:43 2014 +0100

    Fix typos

commit ab9163fbbf629d82e6eb455dde3221dbd02ea28a
Author: Justus Winter <address@hidden>
Date:   Mon Feb 10 14:41:18 2014 +0100

    fatfs: add bz2 to OTHERLIBS
    
    * fatfs/Makefile (OTHERLIBS): Add bz2.

commit f968b1b2b0de0c16311f3781664dd4464822cea9
Author: Justus Winter <address@hidden>
Date:   Mon Feb 10 13:35:46 2014 +0100

    isofs: add bz2 to OTHERLIBS
    
    * isofs/Makefile (OTHERLIBS): Add bz2.

commit b60c41a3b3e05072637e6277f23455b76197e5b3
Merge: b39be88 1ea83c9
Author: Samuel Thibault <address@hidden>
Date:   Sun Feb 9 21:36:58 2014 +0100

    Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd

commit b39be886ee3562ff924b631a365b1e46d424f636
Author: Ignazio Sgalmuzzo <address@hidden>
Date:   Sat Jan 4 22:59:25 2014 +0000

    Replaced bz2 decompression code with libbz2
    
    configure.ac: added check for libbz2
    libstore/Makefile: linked libbz2
    ext2fs/Makefile: linked libbz2
    do-bunzip2.c: rewritten do_bunzip2 using libbz2 calls. Removed no longer 
needed functions.

commit 1ea83c98a8fb8f58a4de8368d1fa29d341a2a73c
Author: Richard Braun <address@hidden>
Date:   Fri Feb 7 22:54:24 2014 +0100

    trans/fakeroot: fix cached node retrieval on lookup
    
    When a client finds a node from the hash table, it could happen that
    another thread is still holding one reference on it before the current
    thread has acquired its own. Simply checking for a non zero refcount isn't
    enough, the new client must atomically acquire its own reference.
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Find and acquire node reference
    while holding netfs_node_refcnt_lock.

commit eafc1c8d2223693e96c9619897f92774735fcb49
Author: Richard Braun <address@hidden>
Date:   Thu Feb 6 02:08:31 2014 +0100

    trans/fakeroot: fix netfs_S_dir_lookup
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Fix node dereference.

commit 4552df253251a92b0355bc6cc58513aa5feb8b30
Author: Richard Braun <address@hidden>
Date:   Wed Feb 5 23:57:41 2014 +0100

    trans/fakeroot: rework node caching
    
    Instead of the FAKE_REFERENCE flag, rework node caching so that nodes are
    retained only if their attributes are actually changed. In addition, don't
    remove unreferenced nodes from the hash table at protid release, since
    their reference counter is unstable. Do it on node destruction, once the
    reference counter has reached 0. This means lookups can return nodes not
    referenced (other than by the hash table), a condition for which a check
    is added. By never acquiring a reference on such nodes, their counter is
    guaranteed to remain stable once unreferenced.
    
    * trans/fakeroot.c (FAKE_REFERENCE): Remove macro.
    (FAKE_DEFAULT): New macro.
    (set_default_attributes): New function.
    (set_faked_attribute): Likewise.
    (netfs_node_norefs): Remove node from hash table, properly taking care
    of all the locks involved.
    (fakeroot_netfs_release_protid): Remove node handling code, merely call
    netfs_release_protid.
    (netfs_S_dir_lookup): Handle unreferenced nodes, call set_default_attributes
    on node creation, remove call to netfs_attempt_chown.
    (netfs_attempt_chown): Call set_faked_attribute instead of accessing faked
    flags directly.
    (netfs_attempt_chauthor): Likewise.
    (netfs_attempt_chmod): Likewise.
    (main): Likewise.

commit 4edd4887541eeff2970c27aa16328a42051e20f4
Author: Richard Braun <address@hidden>
Date:   Wed Feb 5 23:57:40 2014 +0100

    trans/fakeroot: fix chmod
    
    Unconditionally relay chmod requests instead of filtering those that
    don't change the executable bit.
    
    * trans/fakeroot.c (netfs_attempt_chmod): Unconditionally call file_chmod
    with an unaltered mode.

commit 801256914d42b3aa4bb0af22432471b1d911a66c
Author: Richard Braun <address@hidden>
Date:   Wed Feb 5 23:57:40 2014 +0100

    Revert "trans: fix locking issue in fakeroot"
    
    This reverts commit 672005782e57e049c7c8f4d6d0b2a80c0df512b4.
    
    That change is apparently not needed and introduced a deadlock.
    
    * trans/fakeroot.c (netfs_attempt_mkfile): Unlock directory node before
    creating new node.

commit 90246df5d413c6b6a2d57d66c48c2fe3206eb42b
Author: Richard Braun <address@hidden>
Date:   Wed Feb 5 23:57:39 2014 +0100

    trans/fakeroot: fix right leak
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Deallocate rights to intermediate
    file systems.

commit b17be9b496a6dfe10babb8102d8e55ad9a3fc2e2
Author: Justus Winter <address@hidden>
Date:   Wed Feb 5 01:00:48 2014 +0100

    daemons/getty: always print a newline before the banner
    
    * daemons/getty.c (load_banner): Drop first newline from default banner.
    (print_banner): Print a newline.

commit a5b95344a4f9fd3202e627ce08a3a492e35a0fff
Author: Justus Winter <address@hidden>
Date:   Sun Feb 2 15:36:57 2014 +0100

    exec: connect std{in,out,err} to the mach console
    
    * exec/main.c (S_exec_init): Get the device master port and connect
    std{in,out,err} to the mach console.

commit f4bf9dc40689f1ab221d64af6932286d4cd010e6
Author: Justus Winter <address@hidden>
Date:   Wed Jan 29 01:53:50 2014 +0100

    daemons/getty: display /etc/issue if available
    
    Previously, a banner was hardcoded in Hurds getty.  Load /etc/issue
    instead.  Fall back to a hardcoded version if that fails.  Expand
    common \char sequences.  If no /etc/issue is provided, the old
    behavior is retained.
    
    * daemons/getty.c (load_banner): New function.
    (print_banner): Expand \char sequences.

commit 99c53218e3f0611eafde4f6375c4c5e4c2865875
Author: Samuel Thibault <address@hidden>
Date:   Thu Jan 30 01:20:23 2014 +0100

    Fix crash on fsysopts when pfinet has no IPv6
    
    * pfinet/options.c (add_dev_opts): Use a for loop over `idev->addr_list'
    instead of a while loop which assumes that it is not empty.

commit a9a4f69ad7bd02209fdce02b28c701c23fe48a15
Author: Samuel Thibault <address@hidden>
Date:   Wed Jan 29 00:08:48 2014 +0100

    pfinet: really deallocate device port
    
    * pfinet/ethernet.c (ethernet_close): Call mach_port_deallocate on
    device port.

commit d473f407e3b168490032905e60effa3cdbbc063e
Author: Samuel Thibault <address@hidden>
Date:   Tue Jan 28 23:58:34 2014 +0100

    Also re-open Ethernet device on EMIG_SERVER_DIED
    
    * pfinet/ethernet.c (ethernet_xmit): Also call ethernet_close then
    ethernet_open on EMIG_SERVER_DIED error.

commit e24381784b0a56896542d1a5828a77ad0e1c40ec
Merge: 613f84a b8c728e
Author: Samuel Thibault <address@hidden>
Date:   Tue Jan 28 23:43:09 2014 +0100

    Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd

commit 613f84a0fcd46f2143b046b57c6c6444eafa4d4d
Author: Samuel Thibault <address@hidden>
Date:   Tue Jan 28 23:42:06 2014 +0100

    Make pfinet re-open ethernet device on transmission error
    
    * pfinet/ethernet.c (ethernet_close): New function.
    (ethernet_xmit): On EMACH_SEND_INVALID_DEST error, call ethernet_close
    and ethernet_open again to re-open ethernet device.

commit b8c728ec51696c5d17ef09a00b3b193b70a487da
Author: Richard Braun <address@hidden>
Date:   Sun Jan 26 23:14:35 2014 +0100

    libnetfs: fix file locking on peropen release
    
    * libnetfs/release-peropen.c (netfs_release_peropen): Release the lock on
    the underlying node if the peropen status indicates it's not unlocked.

commit 7cb7fa6b3a0d02985b4a51f7823bc1cb631d6bfa
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 19:39:35 2013 +0100

    proc: fix the receiver lookup in S_proc_exception_raise
    
    * proc/mgt.c (S_proc_exception_raise): Update accordingly.
    * proc/mig-decls.h: New file.
    * proc/proc_exc.defs: Add translation functions.

commit ba1f47ffee3d3a2d31a47eeb461283a93e05cf39
Author: Justus Winter <address@hidden>
Date:   Wed Dec 4 11:31:49 2013 +0100

    utils: include the mig-generated server headers in fakeauth.c
    
    GNU MIG recently gained support for emitting x_server_routine
    declarations in the generated server header file.  Using this
    declaration, the x_server_routine functions can be inlined into the
    demuxer function.
    
    * utils/fakeauth.c: Include the mig-generated server headers.

commit d04f830dff5b6f184b62a44f2a047fea89068feb
Author: Justus Winter <address@hidden>
Date:   Wed Dec 4 11:27:03 2013 +0100

    auth: include the mig-generated server headers in auth.c
    
    GNU MIG recently gained support for emitting x_server_routine
    declarations in the generated server header file.  Using this
    declaration, the x_server_routine functions can be inlined into the
    demuxer function.
    
    * auth/auth.c: Include the mig-generated server headers.

commit 7fb8d6150b57560a7e72f50b4913be11fed0fb97
Author: Justus Winter <address@hidden>
Date:   Mon Dec 2 12:11:51 2013 +0100

    pflocal: include the mig-generated server headers
    
    GNU MIG recently gained support for emitting x_server_routine
    declarations in the generated server header file.  Using this
    declaration, the x_server_routine functions can be inlined into the
    demuxer function.
    
    * pflocal/demuxer.c: Include the mig-generated server headers.
    * pflocal/sserver.c: Likewise.

commit 2634719587458febd3e307eecf1a99428279778f
Author: Justus Winter <address@hidden>
Date:   Mon Dec 2 12:11:32 2013 +0100

    pfinet: include the mig-generated server headers in main.c
    
    GNU MIG recently gained support for emitting x_server_routine
    declarations in the generated server header file.  Using this
    declaration, the x_server_routine functions can be inlined into the
    demuxer function.
    
    * pfinet/main.c: Include the mig-generated server headers.

commit ec5086e248d9c75bea7399a3e501ee48b14c047c
Author: Justus Winter <address@hidden>
Date:   Mon Dec 2 12:11:04 2013 +0100

    proc: include the mig-generated server headers in main.c
    
    GNU MIG recently gained support for emitting x_server_routine
    declarations in the generated server header file.  Using this
    declaration, the x_server_routine functions can be inlined into the
    demuxer function.
    
    * proc/main.c: Include the mig-generated server headers.

commit 749dd44d30c86568b2ec7340ced6d849c0dc3a5e
Author: Justus Winter <address@hidden>
Date:   Mon Dec 2 12:10:31 2013 +0100

    exec: include the mig-generated server headers in main.c
    
    GNU MIG recently gained support for emitting x_server_routine
    declarations in the generated server header file.  Using this
    declaration, the x_server_routine functions can be inlined into the
    demuxer function.
    
    * exec/main.c: Include the mig-generated server headers.

commit a917896b61031af1d4b77b3da73e11af646057cf
Author: Justus Winter <address@hidden>
Date:   Mon Dec 2 12:09:55 2013 +0100

    libtrivfs: include the mig-generated server headers in demuxer.c
    
    GNU MIG recently gained support for emitting x_server_routine
    declarations in the generated server header file.  Using this
    declaration, the x_server_routine functions can be inlined into the
    demuxer function.
    
    * libtrivfs/demuxer.c: Include the mig-generated server headers.

commit 2a8c466336db734f9f271f041443fd2b790e3071
Author: Justus Winter <address@hidden>
Date:   Mon Dec 2 12:09:33 2013 +0100

    libnetfs: include the mig-generated server headers in demuxer.c
    
    GNU MIG recently gained support for emitting x_server_routine
    declarations in the generated server header file.  Using this
    declaration, the x_server_routine functions can be inlined into the
    demuxer function.
    
    * libnetfs/demuxer.c: Include the mig-generated server headers.

commit f6c5d005914efa40c4d7a84d3a95894f06a70d7a
Author: Justus Winter <address@hidden>
Date:   Mon Dec 2 12:00:50 2013 +0100

    libdiskfs: include the mig-generated server headers in demuxer.c
    
    GNU MIG recently gained support for emitting x_server_routine
    declarations in the generated server header file.  Using this
    declaration, the x_server_routine functions can be inlined into the
    demuxer function.
    
    * libdiskfs/demuxer.c: Include the mig-generated server headers.

commit 2845394f72e2733f96621a1f02f1b943e62c0964
Author: Justus Winter <address@hidden>
Date:   Thu Nov 28 16:34:31 2013 +0100

    trans: fix the receiver lookup in password
    
    Use translation functions instead of doing the lookup manually.
    
    * trans/Makefile (password-MIGSFLAGS): Add mutators.
    * trans/password.c (S_password_check_user): Update accordingly.
    (S_password_check_group): Likewise.

commit 002b46da8a4270b89003a28b4f5431d857cd0b33
Author: Justus Winter <address@hidden>
Date:   Sun Jan 19 14:16:51 2014 +0100

    Rename variables with the name "error" to "err".
    
    The canonical name for variables of the type error_t is err.  There
    are, however, places where the variable is called error instead.  This
    is unfortunate, as this shadows the error function.  Rename such
    variables to err.
    
    For reference, this is accomplished using the following semantic
    patch:
    
    @@
    expression E;
    @@
    -error_t error = E;
    +error_t err = E;
    <...
    -error
    +err
    ...>
    
    @@
    @@
    -error_t error;
    +error_t err;
    <...
    -error
    +err
    ...>
    
    * libdiskfs/dir-link.c: Rename error to err.
    * libdiskfs/dir-unlink.c: Likewise.
    * libdiskfs/file-get-trans.c: Likewise.
    * libdiskfs/file-get-transcntl.c: Likewise.
    * libdiskfs/file-set-trans.c: Likewise.
    * libdiskfs/fsys-getroot.c: Likewise.
    * libshouldbeinlibc/wire.c: Likewise.

commit 9bebcd38f42da289a3eaf9f473a9529f8d3c4664
Author: Richard Braun <address@hidden>
Date:   Thu Jan 16 23:59:00 2014 +0100

    libps: fix task/thread times fetching
    
    Introduce PSTAT_TIMES to force the retrieval of both PSTAT_TASK_BASIC
    and PSTAT_THREAD_BASIC. Task basic info contain the user and system
    times of terminated threads which the code wrongly assumes is always
    present along with process info.
    
    * libps/procstat.c (add_preconditions): Set both PSTAT_TASK_BASIC and
    PSTAT_THREAD_BASIC as preconditions for PSTAT_TIMES.
    (summarize_thread_basic_info): Add terminated threads times only if
    task basic info are available.
    (set_procinfo_flags): Provide summarize_thread_basic_info with flags of
    available info.
    (proc_stat_set_flags): Set PSTAT_TIMES as available if it was needed and
    any of PSTAT_TASK_BASIC or PSTAT_THREAD_BASIC could be fetched.
    * libps/ps.h (PSTAT_TIMES): New macro.
    * libps/spec.c (ps_get_usr_time): Indicate the getter needs PSTAT_TIMES
    instead of PSTAT_THREAD_BASIC.
    (ps_sys_time_getter): Likewise.
    (ps_tot_time_getter): Likewise.

commit 9a7776ddef6626536f21c09090b8329168a053ce
Author: Justus Winter <address@hidden>
Date:   Thu Oct 17 11:20:30 2013 +0200

    libnetfs: register passive translator startups
    
    Detect passive translator startup and add the resulting active
    translator to the list of active translators.
    
    * libnetfs/dir-lookup.c (netfs_S_dir_lookup): Detect and register
      passive translator startup.

commit 9c2d39405c30b75bc817a6212a116421ebb927f1
Author: Justus Winter <address@hidden>
Date:   Tue Oct 8 12:42:52 2013 +0200

    libdiskfs: register passive translator startups
    
    Detect passive translator startup and add the resulting active
    translator to the list of active translators.
    
    Note that newpi is properly deallocated in the function epilogue.
    
    * libdiskfs/dir-lookup.c (diskfs_S_dir_lookup): Detect and register
      passive translator startup.

commit 4de65c4af42894f57b8b8c3a050260725a96b109
Author: Justus Winter <address@hidden>
Date:   Wed Nov 6 11:22:50 2013 +0100

    libfshelp: fix the api of fshelp_set_active_translator
    
    To detect if an active translator goes away, we need to register for
    dead name notifications. Those notifications have to be sent to a port
    known to the ports library, as the ports library handles the dead name
    notifications. The most straight forward way is to use the port to the
    underlying node for that. To that end, a reference to the port_info
    struct is handed in and kept in the list of active translators.
    
    This commit also moves the registration of dead name notifications to
    libfshelp.
    
    * libfshelp/fshelp.h (fshelp_set_active_translator): Add port_info argument.
    * libfshelp/translator-list.c (struct translator): Add port_info pointer.
    (translator_ihash_cleanup): Dereference port_info object.
    (fshelp_set_active_translator): Register dead name notifications.
    * libdiskfs/file-set-trans.c (diskfs_S_file_set_translator): Update
      accordingly.
    * libnetfs/file-set-translator.c (netfs_S_file_set_translator): Likewise.

commit 0033d20449b3bb558f2ea470983018db39b572aa
Author: Justus Winter <address@hidden>
Date:   Sun Jan 12 15:05:53 2014 +0100

    trans/mtab: do not include non-filesystem translators by default
    
    Traditionally, /proc/mounts includes only filesystem mount points.
    Previously though, the mtab translator included any kind of
    translator, like all /hurd/storeio translators.  This causes problems
    with umount --all as this would remove the passive translator records
    from nodes in /dev.
    
    Fix this by only listing filesystem-like translators by default.
    Filesystem-like translators are identified by their response to
    dir_readdir messages sent to their root node.
    
    * trans/mtab.c (all_translators): New variable.
    (options): Add flag to preserve the old behavior.
    (parse_opt): Handle the new flag.
    (is_filesystem_translator): New function.
    (mtab_populate): Skip non-filesystem translators by default.

commit 3b016a709dd4be5a978dbc8f04b49289612b5be9
Author: Justus Winter <address@hidden>
Date:   Thu Nov 14 15:04:57 2013 +0100

    trans/mtab: make the translator multithreaded
    
    * trans/mtab.c (main): Use ports_manage_port_operations_multithread.

commit c31404533f2fb70efd40d7b56d8165e2ab8bd160
Author: Justus Winter <address@hidden>
Date:   Sun Jan 12 15:47:17 2014 +0100

    trans/mtab: properly lock mtab objects
    
    * trans/mtab.c (struct mtab): Add lock.
    (open_hook): Initialize lock.
    (close_hook): Destroy lock.
    (trivfs_S_io_read): Lock mtab object, adjust error handling accordingly.
    (trivfs_S_io_seek): Likewise.
    (trivfs_S_io_readable): Likewise.

commit dda3d358224c334c8fa4902b3e20c75caf8bddbc
Author: Justus Winter <address@hidden>
Date:   Thu Nov 14 15:47:00 2013 +0100

    trans/mtab: remove the loop detection logic
    
    Previously the mtab detector tried to detect whether it talks to
    itself by comparing the control port of the translator it currently
    visits with its own. This was done to prevent deadlocks. However, this
    did not detect non-trivial loops, i.e. two mtab translators would
    still dead-lock each other.
    
    Now that it is safe to actually file_name_lookup the root node of a
    mtab translator without triggering the generation of content, this
    logic can just be omitted.
    
    * trans/mtab.c (mtab_populate): Remove the loop detection logic.

commit 8070f62fb5240ee5b924d0dae501a50f4662ffe9
Author: Justus Winter <address@hidden>
Date:   Thu Nov 14 15:36:36 2013 +0100

    trans/mtab: populate mtab objects on demand
    
    Previously the mtab content was generated in the open hook. Delay this
    until the data is needed. A follow up patch will take advantage of
    this to both simplify the logic in mtab_populate and make it more
    robust at the same time.
    
    * trans/mtab.c (open_hook): Do not eagerly populate the mtab.
    (trivfs_S_io_read): Populate the mtab struct on demand.
    (trivfs_S_io_seek): Likewise.
    (trivfs_S_io_readable): Likewise.

commit 19689c97a05e0a10691b671c4c37ca0bf51bdd2b
Author: Richard Braun <address@hidden>
Date:   Mon Dec 30 15:08:29 2013 +0100

    libps: fix process user and system times
    
    Include the run time of terminated threads in the user and system times
    of processes.

commit 3a3fcc811e6b50b21124a5c5a128652e788a3b67
Author: Richard Braun <address@hidden>
Date:   Sat Dec 28 09:15:03 2013 +0100

    libports: remove the threadvars stack size hack
    
    Setting the stack size should now correctly be supported by libpthread.
    
    * libports/manage-multithread.c (__pthread_stack_default_size): Remove
    global variable.

commit 2d27ccbc105e84c27547a003aec624a3cc3bbd66
Author: Justus Winter <address@hidden>
Date:   Wed Dec 18 17:25:02 2013 +0100

    trans/fakeroot: shutdown the translator if the last client is gone
    
    Previously, fakeroot would not exit if a process outlived the original
    process started by settrans.  This caused bugs like this:
    
    % fakeroot-hurd /bin/sh -c 'sleep 1&' 2>&1 | tee
    <hangs>
    
    Fix this by exiting if the last client of fakeroot goes away.
    
    If noone has a right to any control or protid port, noone can ever
    reacquire any such right. So it is safe to shutdown the fakeroot
    translator in that case.
    
    * trans/fakeroot.c (fakeroot_netfs_release_protid): Shutdown the
    translator if the last protid object is destroyed and no control port
    is around either.

commit b372e439e05e336d5e52aa0ce69c799c15691932
Author: Justus Winter <address@hidden>
Date:   Fri Dec 13 15:25:22 2013 +0100

    utils/rpctrace: fix output so that replies can be attributed to requests
    
    Currently, it is impossible to properly attribute response messages to
    requests.  Even though rpctrace is single-threaded, its tracee may
    not.  Or there might be more than one tracee.  In any such case it is
    not guaranteed that the reply message we just processed is for the
    request we just printed.  Fix this by printing ellipsis with the port
    name, so that reply messages can be properly attributed:
    
    task129(pid3312)->mach_port_allocate (3) ...134
    task129(pid3312)->mach_port_deallocate (pn{  1}) ...160
    134... = 0 pn{ 30}
    160... = 0
    
    * utils/rpctrace.c (last_reply_port): New variable.
    (print_ellipsis): New function.
    (print_request_header): Optionally print ellipsis and update
    last_reply_port.
    (print_reply_header): Likewise.

commit 84932431cf4fbd494b4597105faed26ed2ac4efe
Author: Justus Winter <address@hidden>
Date:   Fri Dec 13 12:57:55 2013 +0100

    utils/rpctrace: escape non-printable characters in strings
    
    * utils/rpctrace.c (escape_sequences): New char array mapping
    characters to their escape sequence.
    (print_data): Escape non-printable characters when printing strings.

commit b8bce60ff16e52862ca5a3c5a6018420b4fa3cd1
Author: Justus Winter <address@hidden>
Date:   Wed Dec 11 12:56:47 2013 +0100

    utils/rpctrace: handle MACH_MSG_TYPE_PORT_SEND rights in trace_and_forward
    
    This allows one to rpctrace processes doing select(2).
    
    * utils/rpctrace.c (trace_and_forward): Handle MACH_MSG_TYPE_PORT_SEND
    rights.

commit 9a1bb117c165bbedb2b75578ac71e46f2139470e
Author: Justus Winter <address@hidden>
Date:   Wed Dec 11 11:35:39 2013 +0100

    utils/rpctrace: generalize tracing code
    
    Currently, rpctrace dies if a tracee uses select(2) because it asserts
    that reply_type is a MACH_MSG_TYPE_PORT_SEND_ONCE right.  Generalize
    the code surrounding the failing assertion.
    
    * utils/rpctrace.c (trace_and_forward): Generalize code by switching
    over reply_type.

commit d999b70a3f395afe06d430c14fdf02a64ac28c06
Author: Justus Winter <address@hidden>
Date:   Wed Dec 11 12:51:10 2013 +0100

    utils/rpctrace: generalize code in rewrite_right
    
    * utils/rpctrace.c (rewrite_right): Generalize the code so we can use
    rewrite_right to rewrite MACH_MSG_TYPE_PORT_SEND rights for non-rpc ports.

commit ae04256ee85fa02288f34587faad5d461ad57186
Author: Justus Winter <address@hidden>
Date:   Fri Dec 13 10:07:21 2013 +0100

    utils/mount: fix autodetection of fat file systems
    
    mount uses libblkid (if available) to detect the file system type when
    using mount -t auto.  libblkid calls fat file systems "vfat", our fat
    translator is called "fatfs".  Fix this discrepancy in mount.
    
    * utils/mount.c (do_mount): Fix autodetection of fat file systems.

commit 8e1b6ab073a890cc2da6965f9a57bfc91d8c6d38
Author: Justus Winter <address@hidden>
Date:   Tue Dec 10 17:43:06 2013 +0100

    trans/fakeroot: remove dead code
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Remove dead code.

commit 0209a2f92b5693c72975572b7438ebc6d9865b6b
Author: Justus Winter <address@hidden>
Date:   Tue Dec 10 17:03:25 2013 +0100

    trans/fakeroot: remove dead code
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Remove dead code.

commit 4a6a4664f655e785e234e575f024f4674155e274
Author: Justus Winter <address@hidden>
Date:   Tue Dec 10 17:01:02 2013 +0100

    trans/fakeroot: drop else
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Drop else.

commit cb42b5fa92329496f25f9479257bd03aeb346205
Author: Justus Winter <address@hidden>
Date:   Tue Dec 10 16:55:48 2013 +0100

    trans/fakeroot: fix ownership of newly created files
    
    Previously, files created in the fakeroot environment were created
    with the uid and gid of the user running fakeroot:
    
    % fakeroot-hurd /bin/sh -c 'touch /tmp/$$; stat --format=%u:%g /tmp/$$'
    1000:1000
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Fix ownership of newly
    created files.

commit 77ba38a61492799cc3c615f0f622f34fc10de826
Author: Justus Winter <address@hidden>
Date:   Tue Dec 10 15:31:36 2013 +0100

    utils/settrans: fix the teardown of chrooted environments
    
    Previously, settrans --chroot would just exec the target.  Create a
    new process for that purpose.  Wait for its completion, then ask the
    translator (nicely by default) to go away.  If it refuses with EBUSY,
    it might be because some process has daemonized inside the chrooted
    environment.
    
    This fixes the following bug when settrans is used with fakeroot:
    
    % fakeroot-hurd /bin/true 2>&1 | tee
    <hangs>
    
    Here, fakeroot-hurd execs settrans with --chroot, settrans execs
    /hurd/fakeauth which will eventually exec the target /bin/true.  When
    true terminates, it will close its stdout and stderr.  But
    /hurd/fakeroot's stderr is also connected to tee's stdin, preventing
    tee from exiting.
    
    * utils/settrans.c (main): Fix the teardown of chrooted environments.

commit 0bdd1a9d8d3eef8cae027be133ee11fc9a3b5165
Author: Justus Winter <address@hidden>
Date:   Sat Dec 7 16:06:41 2013 +0100

    console-client: remove spurious pthread_spin_unlocks
    
    * console-client/trans.c (netfs_attempt_mkfile): Remove spurious
      pthread_spin_unlock.
    (netfs_node_norefs): Likewise.

commit 83dfdd298d14d885b9ebc37b3b1af703cdd27f8c
Author: Justus Winter <address@hidden>
Date:   Sat Dec 7 15:50:46 2013 +0100

    trans: unlock nodes with faked attributes in fakeroot
    
    When a node has faked attributes, we cannot drop our node.
    Reinitialize the lock box as if the node was dropped.  This fixes the
    following bug:
    
    % fakeroot-hurd /bin/sh -c 'touch /tmp/$$.lock
                                chown 0 /tmp/$$.lock
                                l(){ flock /tmp/$$.lock true; }; l; l'
    <hangs>
    
    * trans/fakeroot.c (fake_node_dropweak): Unlock the node if the last
      real reference is dropped but we keep a fake one.

commit 2640c8a8e32c2f20023e4cb91f87684c62316f19
Author: Justus Winter <address@hidden>
Date:   Fri Dec 6 00:04:39 2013 +0100

    trans: improve the error handling in fakeauth
    
    Previously the node was not correctly torn down if adding the newly
    created netnode to the hash table failed.  Fix this by rearranging the
    code, doing the hash table modification first because it is easier to
    undo.
    
    * trans/fakeroot.c (new_node): Fix the error handling.

commit 7d20408ec4a5dbc973520dd78dd2531c6a1471c7
Author: Justus Winter <address@hidden>
Date:   Thu Dec 5 23:38:53 2013 +0100

    trans: fix reference counting bug in fakeroot
    
    The function new_node creates virtual nodes using netfs_make_node.
    Nodes created with netfs_make_node already have a reference count of
    one.  Currently another reference is added in new_node.  This prevents
    the destruction of the node causing bugs like this:
    
    % fakeroot-hurd sh -c 'l(){ flock /tmp/$$.lock true; }; l; l'
    <hangs>
    
    * trans/fakeroot.c (new_node): Fix reference count of newly created
      nodes.

commit 61c77d679840e4c4455615295ac30215bb01cdf5
Author: Justus Winter <address@hidden>
Date:   Mon Dec 9 14:33:17 2013 +0100

    trans: fix locking in fakeroot's netfs_S_dir_lookup
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Fix locking.

commit b770147356376ddb0602358a0252c4f68a9c80c6
Author: Justus Winter <address@hidden>
Date:   Thu Dec 5 19:40:31 2013 +0100

    trans: fix reference counting and destruction of fake nodes
    
    Previously, fakeroot tried to do too much in netfs_node_norefs.  This
    function is meant to deallocate nodes.  Fakeroot however also tries to
    remove the node from the hash table and to prolong the lifetime of the
    node object by re-referencing it.
    
    Removing the object from the hash table is highly problematic, because
    at this point we already have the node locked.  With proper locking in
    netfs_S_dir_lookup, acquiring the hash table lock while we hold the
    node locked results in dead-locks, releasing the node lock before
    acquiring the hash table lock results in a race condition.
    
    Prolonging the lifetime of the node by re-acquiring a reference is
    clearly a hack that surprisingly works to some degree.  The nodes
    transbox, however, is already gone at this point.
    
    This code was never actually run because of a reference-counting bug
    in fakeroot.
    
    Fix this by installing our own clean routine in the
    netfs_protid_class.  This function is called without the associated
    node being locked, allowing us to acquire the locks in the proper
    order and to keep the hash table locked while the node is being
    destroyed.
    
    * trans/fakeroot.c (netfs_node_norefs): Just free the associated
    resources.
    (fakeroot_netfs_release_protid): New function doing cleanly what
    netfs_node_norefs did before.
    (netfs_S_dir_lookup): Reuse the fake reference.
    (main): Install fakeroot_netfs_release_protid as clean routine.
    
    fixup_fix_refc_destruction

commit 54ee5b628f8d4a1447670f65cc441fc32a9e96ef
Author: Justus Winter <address@hidden>
Date:   Sun Dec 8 18:05:06 2013 +0100

    trans: return nodes locked when creating fake nodes in fakeroot
    
    * trans/fakeroot.c (new_node): Acquire the nodes lock before releasing
      the idport_ihash_lock.  Return nodes locked.
    (netfs_S_dir_lookup): Drop lock.
    (netfs_attempt_mkfile): Likewise.
    (main): Likewise.

commit 672005782e57e049c7c8f4d6d0b2a80c0df512b4
Author: Justus Winter <address@hidden>
Date:   Sun Dec 8 17:55:14 2013 +0100

    trans: fix locking issue in fakeroot
    
    * trans/fakeroot.c (netfs_attempt_mkfile): Keep dir locked until the
      new node is created.

commit 3688ec3ef963c8e41f845c1d98205ca69f91576b
Author: Justus Winter <address@hidden>
Date:   Sun Dec 8 18:28:01 2013 +0100

    trans: handle invalid responses to dir_lookup requests in fakeroot
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Handle invalid responses to
      dir_lookup requests.

commit 2ce5406504540399ed78306198802fc4e1824de7
Author: Justus Winter <address@hidden>
Date:   Sat Dec 7 15:57:17 2013 +0100

    trans: improve the performance of dir_lookup in fakeroot
    
    Previously any FS_RETRY_NORMAL requests were handed back to the
    client.  Redo the lookup ourself instead.  This saves us the burden to
    create a fake node for the intermediate step, hand it back to the
    client and handle another request from the client.
    
    With this change there is no need to fiddle with the permission bits
    as it was previously done.
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Redo the lookup transparently
      for the user if FS_RETRY_NORMAL is requested.
    
    fixup_improve_perf

commit cf1cc29af12447c347a5574b4dc1568c7db61c0b
Author: Justus Winter <address@hidden>
Date:   Thu Dec 5 19:22:03 2013 +0100

    trans: fix the use of the hash table in fakeroot.c
    
    Previously a pointer to the node was stored in the hash table. This
    writes the locp pointer into the node object overwriting the next
    pointer there. Store the pointer to the netnode instead.
    
    * trans/fakeroot.c (struct netnode): Add field np.
    (new_node): Initialize field np.
    (new_node): Store nn instead of np into the hash table.
    (netfs_S_dir_lookup): Adjust accordingly.

commit 64b5a0f4dde23ee9b809b909bccd4ee8637364e9
Author: Justus Winter <address@hidden>
Date:   Thu Dec 5 17:34:48 2013 +0100

    libihash: remove dead code
    
    * libihash/ihash.c (hurd_ihash_add): Remove dead code.

commit a0a49e530b269679695daa6014bfade0b36970e1
Author: Justus Winter <address@hidden>
Date:   Wed Dec 4 17:14:49 2013 +0100

    libfshelp: use a hash table in get-identity.c
    
    Currently fshelp_get_identity uses ports_class_iterate to de-duplicate
    the identity ports. Use a hash table instead.
    
    * libfshelp/get-identity.c (struct idspec): Remove field fileno.
    (struct idspec): Add field id_hashloc.
    (id_clean): New function.
    (id_initialize): Use id_clean as cleanup function for idclass.
    (fshelp_get_identity): Use a hash table to de-duplicate the identity
    ports.

commit 6204a717fc63891839faefda75e95a364ec0434e
Author: Justus Winter <address@hidden>
Date:   Wed Dec 4 10:53:15 2013 +0100

    trans: make the fakeroot environment more transparent
    
    Previously fakeroot did not explicitly proxy io_identity requests, so
    the default implementation from libnetfs handled them. But as the fsys
    identity port returned was always netfs_fsys_identity, this broke the
    getcwd logic (assuming /media/scratch is a translator):
    
    % cd /media/scratch/foo && fakeroot-hurd pwd
    /foo
    
    Fix this by proxying io_identity requests. Since then no-one is
    handing out our netfs_fsys_identity port anymore, an optimization in
    netfs_fsys_identity is made obsolete by this change.
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Adjust code accordingly.
    (netfs_S_io_identity): New function.

commit 93976a816e6d690a6c7d77801e31ce6ee5bc4899
Author: Justus Winter <address@hidden>
Date:   Wed Dec 4 10:43:04 2013 +0100

    trans: fix transparent reauthentication in fakeroot
    
    When looking up files, fakeroot intercepts reauthentication requests
    and executes io_reauthenticate and auth_user_authenticate
    transparently for the client. This, however, makes the client
    incorrectly assume that the lookup is finished (assuming
    /media/scratch is a translator):
    
    % cd /media/scratch && fakeroot-hurd pwd
    pwd: reading directory `..': Bad file descriptor
    
    Make the reauthentication completely transparent to the client by
    re-doing the lookup ourselves.
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Fix transparent reauthentication.

commit df66588b0f6daf99573153cb384a676ced27f0b1
Author: Justus Winter <address@hidden>
Date:   Tue Dec 3 17:46:58 2013 +0100

    trans: fix the creation of files in fakeroot
    
    Previously, fakeroot failed to create files in certain circumstances,
    e. g. assuming /tmp is a tmpfs and /tmp/some_file does not exist:
    
    % cd /tmp && fakeroot-hurd /bin/sh -c ':>/tmp/some_file'
    /bin/sh: 1: cannot create /tmp/some_file: Is a directory
    
    Fix this by sanitizing the flags value not to contain O_WRITE if we're
    not at the last path component.
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Strip O_WRITE from flags when
      looking up all but the last path component.

commit c7030a9c0ac36cccb07ef562908b62c2ef9d8bb4
Author: Justus Winter <address@hidden>
Date:   Tue Dec 3 19:37:54 2013 +0100

    trans: improve the netfs_demuxer function in fakeroot.c
    
    Handle multiple request types as recommended by the Mach Server
    Writer's Guide section 4, subsection "Handling Multiple Request
    Types".  This avoids initializing the reply message in every X_server
    function.  The reply message has already been properly initialized in
    libports, so there is no need to call mig_reply_setup.
    
    * trans/fakeroot.c (netfs_demuxer): Improve the demuxer function.

commit bbe90168171e6aa8bc0045162ef9f03a01e36309
Author: Justus Winter <address@hidden>
Date:   Tue Dec 3 18:56:21 2013 +0100

    trans: remove unused declaration from fakeroot.c
    
    Any messages we do not intercept are forwarded to the underlying file.
    
    * trans/fakeroot.c (netfs_demuxer): Remove unused declaration of
      function netfs_ifsock_server.

commit cc2464c4969f232ed6efb305adfdb69b2176ff34
Author: Justus Winter <address@hidden>
Date:   Wed Dec 4 10:21:41 2013 +0100

    utils: improve the auth_demuxer function in fakeauth.c
    
    Handle multiple request types as recommended by the Mach Server
    Writer's Guide section 4, subsection "Handling Multiple Request
    Types".  This avoids initializing the reply message in every X_server
    function.  The reply message has already been properly initialized in
    libports, so there is no need to call mig_reply_setup.
    
    * utils/fakeauth.c (auth_demuxer): Improve the demuxer function.

commit 03e6f1fa6846dd860d0cd7babee62b8767cade30
Author: Justus Winter <address@hidden>
Date:   Wed Dec 4 10:13:56 2013 +0100

    auth: improve the auth_demuxer function
    
    Handle multiple request types as recommended by the Mach Server
    Writer's Guide section 4, subsection "Handling Multiple Request
    Types".  This avoids initializing the reply message in every X_server
    function.  The reply message has already been properly initialized in
    libports, so there is no need to call mig_reply_setup.
    
    * auth/auth.c (auth_demuxer): Improve the demuxer function.

commit b8b92e2455c2a9652e60a17dd38fc8dc031b77c3
Author: Justus Winter <address@hidden>
Date:   Sat Nov 30 17:48:17 2013 +0100

    pflocal: improve the demuxer functions
    
    Handle multiple request types as recommended by the Mach Server
    Writer's Guide section 4, subsection "Handling Multiple Request
    Types".  This avoids initializing the reply message in every X_server
    function.  The reply message has already been properly initialized in
    libports, so there is no need to call mig_reply_setup.
    
    * pflocal/pflocal.c (pf_demuxer): Improve the demuxer function.
    * pflocal/sserver.c (sock_demuxer): Likewise.

commit 9cec7a2482a68ca1ae41d65fc8b94584d5020c3f
Author: Justus Winter <address@hidden>
Date:   Sat Nov 30 17:32:01 2013 +0100

    pfinet: improve the pfinet_demuxer function
    
    Handle multiple request types as recommended by the Mach Server
    Writer's Guide section 4, subsection "Handling Multiple Request
    Types".  This avoids initializing the reply message in every X_server
    function.  The reply message has already been properly initialized in
    libports, so there is no need to call mig_reply_setup.
    
    * pfinet/main.c (pfinet_demuxer): Improve the demuxer function.

commit 89c0598d4c1c414c7c567995fd1d0e569fee3d08
Author: Justus Winter <address@hidden>
Date:   Sat Nov 30 17:29:04 2013 +0100

    proc: improve the message_demuxer function
    
    Handle multiple request types as recommended by the Mach Server
    Writer's Guide section 4, subsection "Handling Multiple Request
    Types".  This avoids initializing the reply message in every X_server
    function.  The reply message has already been properly initialized in
    libports, so there is no need to call mig_reply_setup.
    
    * proc/main.c (message_demuxer): Improve the demuxer function.

commit a148e931c6c6a7d2a5e602f188d67e199082ae0a
Author: Justus Winter <address@hidden>
Date:   Sat Nov 30 17:22:25 2013 +0100

    exec: improve the exec_demuxer function
    
    Handle multiple request types as recommended by the Mach Server
    Writer's Guide section 4, subsection "Handling Multiple Request
    Types".  This avoids initializing the reply message in every X_server
    function.  The reply message has already been properly initialized in
    libports, so there is no need to call mig_reply_setup.
    
    Furthermore, move the exec_startup_server_routine to the end of the
    chain, as the startup related functions are only needed at system
    bootstrap time.
    
    * exec/main.c (exec_demuxer): Improve the demuxer function.

commit e3c983ea9d62cdd0de86a8f4c4164c692252fb74
Author: Justus Winter <address@hidden>
Date:   Sat Nov 30 17:20:40 2013 +0100

    libtrivfs: improve the trivfs_demuxer function
    
    Handle multiple request types as recommended by the Mach Server
    Writer's Guide section 4, subsection "Handling Multiple Request
    Types".  This avoids initializing the reply message in every X_server
    function.  The reply message has already been properly initialized in
    libports, so there is no need to call mig_reply_setup.
    
    * libtriv/demuxer.c (trivfs_demuxer): Improve the demuxer function.

commit ceb716e88f2ade9d9abe116fe8cddf34844d71e7
Author: Justus Winter <address@hidden>
Date:   Sat Nov 30 17:18:01 2013 +0100

    libnetfs: improve the netfs_demuxer function
    
    Handle multiple request types as recommended by the Mach Server
    Writer's Guide section 4, subsection "Handling Multiple Request
    Types".  This avoids initializing the reply message in every X_server
    function.  The reply message has already been properly initialized in
    libports, so there is no need to call mig_reply_setup.
    
    * libnetfs/demuxer.c (netfs_demuxer): Improve the demuxer function.

commit bbf408117c40f2e02b9d3e23025c01b74f5bdc09
Author: Justus Winter <address@hidden>
Date:   Fri Nov 29 13:51:19 2013 +0100

    libdiskfs: improve the diskfs_demuxer function
    
    Handle multiple request types as recommended by the Mach Server
    Writer's Guide section 4, subsection "Handling Multiple Request
    Types".  This avoids initializing the reply message in every X_server
    function.  The reply message has already been properly initialized in
    libports, so there is no need to call mig_reply_setup.
    
    Furthermore, move diskfs_exec_startup_server_routine to the end of the
    chain, as the startup related functions are only needed at system
    bootstrap time in the root filesystem.
    
    * libdiskfs/demuxer.c (diskfs_demuxer): Improve the demuxer function.

commit e5bb7f10e01224d75e55da6e545f779ac0fa73a3
Author: Richard Braun <address@hidden>
Date:   Sat Nov 30 17:20:12 2013 +0100

    libports: another right leak fix
    
    * libports/manage-multithread.c (adjust_priority): Deallocate host
    right before returning.

commit 34ff01a84390ba7a5c0377c326944fc026d66140
Author: Justus Winter <address@hidden>
Date:   Mon Nov 25 17:01:30 2013 +0100

    libfshelp: improve error handling in fshelp_start_translator_long
    
    Properly deallocate all ports and terminate the started translator if
    an error occurs.
    
    * libfshelp/start-translator-long.c (fshelp_start_translator_long):
      Improve error handling.

commit f0023823ef3282bd3483e6a7aa19b0a0939a6ba4
Author: Justus Winter <address@hidden>
Date:   Wed Nov 27 10:38:08 2013 +0100

    proc: store the device master port in _hurd_device_master
    
    * proc/host.c (S_proc_getprivports): Adapt accordingly.
    * proc/main.c (main): Store the device master port in _hurd_device_master.
    * proc/proc.h (master_device_port): Remove unused variable.

commit 2c9422595f41635e2f4f7ef1afb7eece9001feae
Author: Justus Winter <address@hidden>
Date:   Tue Nov 26 17:33:05 2013 +0100

    proc: store the privileged host port in _hurd_host_priv
    
    Store the privileged host port in _hurd_host_priv like it is done in
    the root filesystem. This fixes the thread priority adjustment in the
    proc server. Prior to this fix, a warning message "unable to adjust
    libports thread priority" sometimes appeared early in the boot
    process.
    
    * proc/host.c (S_proc_getprivports): Adapt accordingly.
    (S_proc_register_version): Likewise.
    * proc/mgt.c (add_tasks): Likewise.
    * proc/msg.c (tickle_init): Likewise.
    * proc/main.c (main): Store the privileged host port in _hurd_host_priv.
    * proc/proc.h: Remove unused variable master_host_port.
    
    fixup_store_priv_port

commit 6d1f5176f257ab9a9b47ae65b528c9ab79db5b31
Author: Justus Winter <address@hidden>
Date:   Wed Nov 27 10:49:46 2013 +0100

    libports: improve error reporting in adjust_priority
    
    By using error instead of perror, the warning can be proprely
    attributed to the process.
    
    * libports/manage-multithread.c (adjust_priority): Use error instead
      of perror to print the warning.

commit 460b6f2daff3c413de4312424d38cd50c481016f
Author: Justus Winter <address@hidden>
Date:   Mon Nov 25 16:58:59 2013 +0100

    libdiskfs: improve error reporting in diskfs_start_disk_pager
    
    * libdiskfs/disk-pager.c (diskfs_start_disk_pager): Improve error reporting.

commit c62b1edd42d9522d6277d5ca648f2e4a4214341c
Author: Justus Winter <address@hidden>
Date:   Sat Nov 23 15:30:42 2013 +0100

    libports: improve error handling in ports_transfer_right
    
    * libports/transfer-right.c (ports_transfer_right): Improve error handling.

commit 4353f92301cd903a00831a8272d149c45bbb5b8c
Author: Justus Winter <address@hidden>
Date:   Sat Nov 23 15:27:31 2013 +0100

    libports: improve error handling in ports_reallocate_from_external
    
    * libports/reallocate-from-external.c (ports_reallocate_from_external):
      Improve error handling.

commit 76a94131bf8823b3ad0192878ecef6b6ef2da004
Author: Justus Winter <address@hidden>
Date:   Sat Nov 23 15:25:03 2013 +0100

    libports: improve error handling in ports_reallocate_port
    
    * libports/reallocate-port.c (ports_reallocate_port): Improve error
      handling.

commit 31d394232eb8544154198ec3de7328ab1a6b82a6
Author: Justus Winter <address@hidden>
Date:   Sun Nov 24 23:30:08 2013 +0100

    proc: update comments
    
    * proc/main.c (main): Update comment. The proc server is no longer PID 0.
    * proc/proc.h: Likewise.

commit 78636c03a561d3a9a1b7c008dc390fe854196309
Author: Justus Winter <address@hidden>
Date:   Mon Nov 25 13:05:01 2013 +0100

    init: fix port leak
    
    * init/init.c (S_startup_essential_task): Fix port leak.

commit 88be9e7481f167d139b4f3c981368b6071c61384
Author: Justus Winter <address@hidden>
Date:   Wed Nov 27 10:27:29 2013 +0100

    libshouldbeinlibc: fix minor port leak in maptime_map
    
    Deallocate the device port after creating the mapping. The mapping is
    independent of the device port.
    
    * libshouldbeinlibc/maptime.c (maptime_map): Deallocate device port.

commit 2ef89abb8cbafab865baa2399e2641879b495aea
Author: Richard Braun <address@hidden>
Date:   Mon Nov 25 14:10:53 2013 +0100

    libports: fix right leaks when adjusting priorities
    
    * libports/manage-multithread.c (adjust_priority): Deallocate processor set
    rights before returning.

commit 5e3d2fc37be8b73a0ddabf1389c75f79e77c7e93
Author: Justus Winter <address@hidden>
Date:   Wed Nov 20 13:19:36 2013 +0100

    libshouldbeinlibc: fix error handling in maptime_map
    
    Found using the Clang Static Analyzer.
    
    * libshouldbeinlibc/maptime.c (maptime_map): Fix error handling.

commit ae2434732c4b24d1b91ab30615e79f48bd40b9b5
Author: Justus Winter <address@hidden>
Date:   Wed Nov 20 12:37:21 2013 +0100

    mach-defpager: drop all register qualifiers
    
    * mach-defpager/default_pager.c: Drop register qualifiers.
    * mach-defpager/kalloc.c: Likewise.
    * mach-defpager/queue.h: Likewise.
    * mach-defpager/wiring.c: Likewise.

commit 7d8a6e3f517d0bf959a2db2c9c774a15439f6c94
Author: Justus Winter <address@hidden>
Date:   Wed Nov 20 12:08:28 2013 +0100

    usermux: actually use the computed flags value in netfs_attempt_utimes
    
    If either atime or mtime is NULL, the respective time should be set to
    the current time.
    
    Found using the Clang Static Analyzer.
    
    * usermux/node.c (netfs_attempt_utimes): Use flags in call to
      fshelp_touch.

commit d1fd151cdd1faec5fd4966118586c746a89d93c1
Author: Justus Winter <address@hidden>
Date:   Wed Nov 20 12:01:43 2013 +0100

    nfsd: fix error handling in op_remove
    
    Found using the Clang Static Analyzer.
    
    * nfsd/ops.c (op_remove): Fix error handling.

commit 562e3a8a2652dd960d5d76208c723f717e47330e
Author: Justus Winter <address@hidden>
Date:   Wed Nov 20 11:47:44 2013 +0100

    fatfs: fix error handling in diskfs_get_directs
    
    Found using the Clang Static Analyzer.
    
    * fatfs/dir.c (diskfs_get_directs): Fix error handling.

commit 6ba9bf05e62d651505e1487b50eee90bd6379e02
Author: Justus Winter <address@hidden>
Date:   Wed Nov 20 11:46:29 2013 +0100

    fatfs: fix error handling in diskfs_lookup_hard
    
    Found using the Clang Static Analyzer.
    
    * fatfs/dir.c (diskfs_lookup_hard): Fix error handling.

commit edd9912ffb4a44068aae2ec21f0449d3d53616a3
Author: Justus Winter <address@hidden>
Date:   Wed Nov 20 11:35:14 2013 +0100

    libps: fix the length computation in fprint_frac_value
    
    Found using the Clang Static Analyzer.
    
    * libps/spec.c (fprint_frac_value): Fix computation of value_len.

commit 32e60534c7e2b6093de74bd75d37cb117f1d3a5c
Author: Justus Winter <address@hidden>
Date:   Wed Nov 20 11:22:34 2013 +0100

    utils: fix dead initialization
    
    Found using the Clang Static Analyzer.
    
    * utils/frobauth.c (posix_parse_opt): Fix dead initialization.
    (no_ugids_parse_opt): Likewise.

commit 448d06e8dc5c06f111bb6baae7d456e174225729
Merge: 4d6828c e971ab1
Author: Samuel Thibault <address@hidden>
Date:   Tue Nov 19 01:44:58 2013 +0100

    Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurd

commit 4d6828ca04636d331f9a050f05b576e489022a1f
Author: Samuel Thibault <address@hidden>
Date:   Tue Nov 19 01:43:11 2013 +0100

    Make sure created netfs nodes have stat validated
    
    Just like it always is in libnetfs' normal netfs_S_dir_lookup.
    
    * trans/fakeroot.c (netfs_S_dir_lookup): Call netfs_validate_stat after
    calling new_node.

commit e971ab1a229d1ef1d5c1e5e1ff52ec597c55270e
Author: Justus Winter <address@hidden>
Date:   Mon Nov 11 20:53:07 2013 +0100

    libports: implement lockless management of threads
    
    ports_manage_port_operations_multithread uses two values, totalthreads
    and nreqthreads, to manage the threads it creates.  Previously a lock
    was used to synchronize the access to them. Use atomic operations
    instead.
    
    * libports/manage-multithread.c (ports_manage_port_operations_multithread):
      Use atomic operations instead of a lock to synchronize the access to
      totalthreads and nreqthreads.

commit 8f39f8bf905ca84db4c853733f6a3d3a3011c237
Author: Justus Winter <address@hidden>
Date:   Fri Nov 15 20:36:58 2013 +0100

    Clean up the included header files
    
    * libihash/ihash.c: Clean up the included header files.
    * libshouldbeinlibc/cacheq.c: Likewise.
    * libshouldbeinlibc/canon-host.c: Likewise.
    * libshouldbeinlibc/fsysops.c: Likewise.
    * libshouldbeinlibc/idvec-auth.c: Likewise.
    * libshouldbeinlibc/idvec.c: Likewise.
    * libshouldbeinlibc/idvec.h: Likewise.
    * libshouldbeinlibc/localhost.c: Likewise.
    * libshouldbeinlibc/maptime.c: Likewise.
    * libshouldbeinlibc/nullauth.c: Likewise.
    * libshouldbeinlibc/portxlate.c: Likewise.
    * libshouldbeinlibc/shared-dom.c: Likewise.
    * libshouldbeinlibc/ugids-argp.c: Likewise.
    * libshouldbeinlibc/ugids-auth.c: Likewise.
    * libshouldbeinlibc/ugids-imply.c: Likewise.
    * libshouldbeinlibc/ugids-merge.c: Likewise.
    * libshouldbeinlibc/ugids-subtract.c: Likewise.
    * libshouldbeinlibc/ugids-verify-auth.c: Likewise.
    * libshouldbeinlibc/ugids-verify.c: Likewise.
    * libshouldbeinlibc/ugids.c: Likewise.
    * libshouldbeinlibc/ugids.h: Likewise.
    * libshouldbeinlibc/wire.c: Likewise.

commit ef0b64d8d0ee7851a4d149ef8e39c133e4b788b7
Author: Justus Winter <address@hidden>
Date:   Fri Nov 15 13:04:53 2013 +0100

    mach-defpager: do not remove -Wall from CFLAGS
    
    Bother, said Pooh.
    
    * Makefile: Do not remove -Wall from CFLAGS.

commit dc96b68a826a652d514f994d1f7932fb6fff87a7
Author: Justus Winter <address@hidden>
Date:   Fri Nov 15 12:57:27 2013 +0100

    mach-defpager: fix the page offsets returned by pager_pages
    
    Previously the increment was outside the loop body, turning it into a
    dead increment.
    
    Move the increment into the loop body as it is done in the true branch
    above. This fixes the offsets recorded in the default_pager_page_t
    objects.
    
    Found using the Clang Static Analyzer.
    
    * mach-defpager/default_pager.c (pager_pages): Fix returned page offsets.

commit e4e5c29fb254a05a134886ee6518e3d7cfde1cc6
Author: Justus Winter <address@hidden>
Date:   Fri Nov 15 12:26:32 2013 +0100

    libshouldbeinlibc: fix dead assignment
    
    Found using the Clang Static Analyzer.
    
    * libshouldbeinlibc/timefmt.c (fmt_past_time): Fix dead assignment,
      normalize adjacent white space.

commit 5d3b00abe9a506ab3c3310cfb82394534463c40b
Author: Justus Winter <address@hidden>
Date:   Fri Nov 15 12:10:05 2013 +0100

    ext2fs: fix error handling
    
    Found using the Clang Static Analyzer.
    
    * ext2fs/dir.c (diskfs_lookup_hard): Fix error handling.

commit 95e50540529d5a411880acbb6ee9f743226243a8
Author: Justus Winter <address@hidden>
Date:   Fri Nov 15 11:56:50 2013 +0100

    libdiskfs: fix error handling
    
    Found using the Clang Static Analyzer.
    
    * libdiskfs/dir-renamed.c (diskfs_rename_dir): Fix error handling.

commit c75adc040ca2767545e9cff51575b2ac1706efcd
Author: Justus Winter <address@hidden>
Date:   Fri Nov 15 11:53:55 2013 +0100

    libdiskfs: remove dead assignment
    
    Found using the Clang Static Analyzer.
    
    * libdiskfs/io-write.c (diskfs_S_io_write): Remove dead assignment.

commit f5ba2dee8d589639de0e0df315322e5b312c45c5
Author: Justus Winter <address@hidden>
Date:   Thu Nov 7 17:15:53 2013 +0100

    utils: implement portinfo --search
    
    Implement the --search switch of portinfo. The feature was suggested
    in the source code and partly implemented. portinfo --search locates
    the target ports (or all ports) in any other process and prints the
    port mapping and information about the port in the remote process.
    
    * utils/Makefile: Link portinfo against libps.
    * utils/portinfo.c (options): Enable --search option.
    (search_for_port): New function.
    (search_for_ports): Likewise.
    (main): Call search_for_port{,s} as appropiate.

commit 9b02c4454abee568af9ff1d6c9044e9cd757b5aa
Author: Justus Winter <address@hidden>
Date:   Thu Nov 7 17:01:02 2013 +0100

    libshouldbeinlibc: fix reference counting in port_name_xlator_create
    
    Both task ports are deallocated in the destructor, so they must be
    referenced in the constructor.
    
    * libshouldbeinlibc/portxlate.c (port_name_xlator_create): Fix
      reference counting.

commit 130b51ac17f44707261f4885d2fadb44a2f5a1e5
Author: Justus Winter <address@hidden>
Date:   Wed Nov 6 17:10:35 2013 +0100

    mach-defpager: include errno.h
    
    * mach-defpager/default_pager.c: Include errno.h.

commit 5d255e321ace772df825d4ac2604b451bde7ba15
Author: Justus Winter <address@hidden>
Date:   Wed Nov 6 13:14:30 2013 +0100

    proc: turn count_up and store_pid into normal functions
    
    Previously count_up and store_pid were defined inside
    S_proc_getallpids. Move them out of that function and declare them
    static.
    
    * proc/mgt.c: Turn count_up and store_pid into normal functions.

commit aaba23a7f450d43d0062d66a712e5d0de62f7e87
Author: Justus Winter <address@hidden>
Date:   Wed Nov 6 10:37:42 2013 +0100

    term: fix error handling in hurdio_mdmctl
    
    hurdio_mdmctl allows one to set and clear bits from the modem control
    bit vector. However, plausible code paths exist that leave oldbits
    uninitialized. Fix this by returning an error instead if retrieving
    the oldbits failed and the bit set or clear operation was selected.
    
    Found using the Clang Static Analyzer.
    
    * term/hurdio.c (hurdio_mdmctl): Fix error handling.

commit 180563217f2579029424c9b79abe7bb2fcfeb51b
Author: Justus Winter <address@hidden>
Date:   Wed Nov 6 17:20:34 2013 +0100

    mach-defpager: remove unused variables
    
    Found using the Clang Static Analyzer.
    
    * mach-defpager/default_pager.c (seqnos_memory_object_terminate):
      Remove unused variables request_refs and name_refs.

commit b31164eeecf3f798f75a71577ae365daf8211946
Author: Justus Winter <address@hidden>
Date:   Wed Nov 6 17:05:41 2013 +0100

    mach-defpager: turn dealloc_direct into a normal function
    
    * mach-defpager/default_pager.c (dealloc_direct): Move function
      definition outside of pager_truncate.

commit bd55e5ccce4b35ffb1028d7810b93df3b7522d05
Author: Justus Winter <address@hidden>
Date:   Wed Nov 6 16:17:26 2013 +0100

    auth: fix use of uninitialized variable err
    
    Previously a plausible execution path existed so the value of err was
    undefined at the end of the function, making the function return
    arbitrary error values. Fix this by initializing it to 0.
    
    Found using the Clang Static Analyzer.
    
    * auth/auth.c (S_auth_server_authenticate): Initialize err to 0.

commit d22ba3e7629976f6a55382140945e92a4d5600b7
Author: Justus Winter <address@hidden>
Date:   Wed Nov 6 16:10:37 2013 +0100

    init: fix memory leak
    
    Found using the Clang Static Analyzer.
    
    * init/init.c (process_signal): Fix memory leak.

commit 59499c6189fd0871b46acf7c3c1a67c00bba9956
Author: Justus Winter <address@hidden>
Date:   Wed Nov 6 15:21:39 2013 +0100

    proc: fix error handling in S_proc_exception_raise
    
    Found using the Clang Static Analyzer.
    
    * proc/mgt.c (S_proc_exception_raise): Fix error propagation.

commit 20fdd28047bfe8fabb7cebbda49386f4cab3c020
Author: Justus Winter <address@hidden>
Date:   Wed Nov 6 14:55:47 2013 +0100

    proc: fix a use-after-free error
    
    If we have to create a new process group, we have to do this before
    leaving the current one. The current process group is deallocated if
    the process is the last process in that group. Likewise, if the
    current group was the last group in the current groups session, the
    session is deallocated.
    
    Found using the Clang Static Analyzer.
    
    * proc/pgrp.c (S_proc_setpgrp): Fix use-after-free error.

commit e65dc371a1c421dcfe4b6bbf2f937ae7ef5a563d
Author: Justus Winter <address@hidden>
Date:   Wed Nov 6 14:53:37 2013 +0100

    proc: fix the declaraton of genpid
    
    * proc/proc.h (genpid): Fix declaration.

commit cb92b7618edec56b534f89129556ba74b62e4c6e
Author: Justus Winter <address@hidden>
Date:   Wed Nov 6 13:10:07 2013 +0100

    proc: remove declaration of nested functions from proc.h
    
    Remove the declaration of count_up and strore_pid from proc.h. The
    functions are defined as nested functions in S_proc_getallpids, there
    is no need to declare them. Furthermore, the declaration does not
    match the definition.
    
    * proc/proc.h: Remove declaration of count_up and strore_pid.

commit 38bd193c9908d88f26f36ed62298b0b1ad13d2cb
Author: Justus Winter <address@hidden>
Date:   Thu Nov 7 17:23:47 2013 +0100

    utils: implement settrans --pid-file
    
    This switch makes settrans write the pid file of the active translator
    it starts to a file. This makes the pid easily retrievable for test
    suites.
    
    * utils/settrans.c (options): Add --pid-file.
    (main): Add variable pid_file.
    (parse_opt): Handle --pid-file switch.
    (open_node): Write pid file.

commit 9019e629679ec12c1a4c9656bab337e84f861e8c
Author: Justus Winter <address@hidden>
Date:   Fri Nov 8 14:28:26 2013 +0100

    libports: fix the thread counts in case the thread creation fails
    
    Previously the number of total threads and the number of unused
    threads was wrong if at one point the creation of a thread failed. Fix
    this by decrementing both counters that were previously optimistically
    incremented. Adjust the comment accordingly.
    
    * libports/manage-multithread.c (ports_manage_port_operations_multithread):
      Fix the thread counts in case the thread creation fails.

commit 057c04d1157322c235872e412bcc22487858c5af
Author: Justus Winter <address@hidden>
Date:   Fri Nov 8 11:26:42 2013 +0100

    Normalize whitespace at the end of each file to '\n'
    
    Some files were not normalized. In console/motd.UTF8 the additional
    newline is intentional. Empty files were excluded as well.

commit 218cae5a714342b5d82a5b004d58f0a9ebbbfe5e
Author: Richard Braun <address@hidden>
Date:   Wed Nov 6 01:44:09 2013 +0100

    pfinet: fix emission on the loopback device
    
    Unlike other devices, sending packets on the loopback device causes the
    netif_rx() function to be called from the net_bh worker thread. Since
    the thread is already running, it can't wake itself up when calling
    mark_bh(). Use a new variable to indicate when net_bh work is pending.
    
    * glue-include/linux/interrupt.h (net_bh_raised): Declare new global
    variable.
    (mark_bh): Set net_bh_raised to 1 before waking up net_bh worker thread.
    * loopback.c (loopback_xmit): Add comment giving details about locking.
    * sched.c (net_bh_raised): Define new global variable.
    (net_bh_worker): Wait for net_bh_raised to become true and reset it
    before processing net_bh work.

commit 880dd56f468b57a198ab2136767d03ddaa586eef
Author: Justus Winter <address@hidden>
Date:   Fri Nov 1 22:53:12 2013 +0100

    libports: fix error handling in _ports_create_port_internal
    
    Previously any err value set before reaching lose: was overwritten and
    thus not properly propagated.
    
    Found using the Clang Static Analyzer.
    
    * libports/create-internal.c (_ports_create_port_internal): Fix error
      handling.

commit a274a4f22c83c536744e77e3dc873417912a1928
Author: Samuel Thibault <address@hidden>
Date:   Fri Nov 1 22:39:19 2013 +0100

    Fix use after free
    
    Reported by Justus Winter
    
    * libtrivfs/protid-clean.c (trivfs_clean_protid): New variable `cntl` 
factorizes
    access to `cred->po->cntl`, and fixes use after free of cred->po.

commit 2ca0296a824d12bc55e3d4d0bf580f26a10eb830
Author: Justus Winter <address@hidden>
Date:   Fri Oct 25 10:30:23 2013 +0200

    libshouldbeinlibc: fix error handling in maptime_map
    
    Found using the Clang Static Analyzer.
    
    * libshouldbeinlibc/maptime.c (maptime_map): Fix error handling.

commit c38a10bca63e4fea5573dccf4caa9d17e325a6d8
Author: Justus Winter <address@hidden>
Date:   Fri Oct 25 10:30:21 2013 +0200

    exec: Remove the remaining BFD related bits
    
    * exec/Makefile: Remove commented out lines related to BFD.
    * exec/hostarch.c: Remove all BFD related code.
    * exec/main.c: Likewise.

commit 87c02e03c4ae40e5e96792f67d7aad09b7f50935
Author: Justus Winter <address@hidden>
Date:   Fri Oct 25 13:45:47 2013 +0200

    configure.ac: properly escape the test for X11/keysymdef.h
    
    * configure.ac: Properly escape the test for X11/keysymdef.h using
      AC_LANG_SOURCE.

commit aece54e2c790d65c660bfe0bbbfd42d9cdd3fe27
Author: Samuel Thibault <address@hidden>
Date:   Mon Oct 28 09:16:55 2013 +0100

    Make boot script accept more fsck values
    
    * daemons/rc.sh: Accept fsck returning 5 and 9 too.

commit 52b0837fc72d5be2b99b71e6223d54cbfaf1716a
Author: Samuel Thibault <address@hidden>
Date:   Tue Oct 22 20:35:32 2013 +0200

    Add xenl to hurd.ti
    
    * console/hurd.ti (xenl): Add capability.

commit e1dff04f50833437c47cf1b737e69d3a73de9d63
Author: Samuel Thibault <address@hidden>
Date:   Tue Oct 22 14:38:28 2013 +0200

    Make CUD more usual
    
    Whether CUD scrolls the screen or not is implementation-dependant.
    Applications are not supposed to assume one way or the other, but they
    sometimes do, and most implementations do scroll, so let's stick to common
    practice.
    
    * console/display.c (handle_esc_bracket): On CUD/VPR, scroll the screen
    instead of capping the cursor position.

commit 1cf9d9d1ee1b5bb9ea73208b9635252ab5d883fb
Author: Samuel Thibault <address@hidden>
Date:   Tue Oct 22 11:39:32 2013 +0200

    Make boot script reboot when fsck told so
    
    * daemons/rc.sh: When fsck returned 2 or 3, reboot the system.

commit 6a33dc6cb1546acf3c5db982e3f44b41bff67b05
Author: Richard Braun <address@hidden>
Date:   Fri Oct 18 01:16:08 2013 +0200

    pflocal: fix message flags on receive
    
    * pflocal/socket.c (S_socket_recv): Set the memory pointed by out_flags
    to 0 instead of the pointer.

commit 2e5f5e3c6d3716aec736474a198de5f7746a5450
Author: Richard Braun <address@hidden>
Date:   Fri Oct 18 01:16:08 2013 +0200

    pflocal: fix port leak when receiving port rights
    
    The socket_send and socket_recv routines can be used to transmit port
    rights along data. Unfortunately, pflocal retains a copy of these rights
    in the socket_recv RPC. These lingering references would in turn lead to
    other leaks in servers waiting for a no-sender notification to clean
    their resources. Since these copied rights aren't used at all by the
    server, it is safe to simply move them to the recipient instead.
    
    * pflocal/socket.c (S_socket_recv): Transmit port rights using
    MACH_MSG_TYPE_MOVE_SEND transfer type instead of MACH_MSG_TYPE_COPY_SEND.

commit 5ab5d98fa515cd19a64e8d5868fcbae85eec9dc5
Author: Richard Braun <address@hidden>
Date:   Fri Oct 18 01:16:08 2013 +0200

    libdiskfs: fix removal of socket nodes
    
    When the file system supports ifsock shortcuts, a socket node can obtain
    a right on a socket address. This reference is only lost if the address
    is destroyed, through a dead-name notification. On the other hand,
    pflocal keeps the address around until all references are dropped. This
    leads to a situation where socket nodes, addresses, and their associated
    sockets are leaked. To remedy the situation, make addresses get a light
    reference on socket nodes, and properly deallocate it when the node is
    destroyed, which will in turn make pflocal correctly remove the matching
    address and socket.
    
    * libdiskfs/ifsock.c (diskfs_S_ifsock_getsockaddr): Add a light reference
    instead of a hard one.
    * libdiskfs/node-nput.c (diskfs_nput): Deallocate right to socket address
    when cleaning light references.

commit 4660ac02b9723380b4581b4c6a46e54861b95059
Author: Richard Braun <address@hidden>
Date:   Fri Oct 18 01:16:07 2013 +0200

    pflocal: fix destruction of explicitely bound sockets
    
    Sockets must have a weak reference on the address they're bound to so
    that addr_unbind is properly called before addr_clean. For sockets that
    are automatically bound, this weak reference is created in ensure_addr.
    Do the same in sock_bind.
    
    * pflocal/sock.c (sock_bind): Handle weak reference on addr.

commit 1cfdceba98c380ad1cebb3a6b3d1f141d852c691
Author: Richard Braun <address@hidden>
Date:   Mon Oct 14 20:48:25 2013 +0200

    term: fix read on a closed PTY
    
    * term/ptyio.c (pty_io_read): Return EIO if the terminal has been closed.

commit ef6f49570c748bed2c086faecec9064b9b04514a
Author: Justus Winter <address@hidden>
Date:   Thu Oct 10 18:08:20 2013 +0200

    console-client: replace function epilogue with console_exit
    
    * console-client/console.c (main): Replace epilogue with console_exit.

commit 5296cbf51c564fdbf2beb299beda43bdd52a8229
Author: Justus Winter <address@hidden>
Date:   Thu Oct 10 18:08:21 2013 +0200

    console-client: minor stylistic fix
    
    * console-client/console.c (main): Minor stylistic fix.

commit 810d47c823ccac01888f3e64e1dcdd247ef92986
Author: Justus Winter <address@hidden>
Date:   Thu Oct 10 18:08:22 2013 +0200

    console-client: fix error handling
    
    Fix the error handling in console_move_mouse. This also appeases the
    compiler.
    
    * console-client/console.c (console_move_mouse): Fix error handing.

commit 9be362ab7efc6ad27a678e00f9b0b35a24993aa1
Author: Justus Winter <address@hidden>
Date:   Thu Oct 10 18:08:19 2013 +0200

    console-client: entitle console_exit with the noreturn attribute
    
    * console-client/input.h (console_exit): Add noreturn attribute.

commit 695e5d209ade018afea1b2d2f9e042e9c78028ae
Author: Justus Winter <address@hidden>
Date:   Thu Oct 10 18:08:18 2013 +0200

    console-client: remove the pid file on clean exits
    
    Remove the pid file if the console client exits either cleanly using
    console_exit or because of an error during daemonization.
    
    * console-client/console.c (console_exit): Remove the pid file.
    (daemon_error): Likewise.

commit fd8213f83d0656bd0cd5215306e22e5a25058bee
Author: Justus Winter <address@hidden>
Date:   Tue Oct 8 15:49:04 2013 +0200

    libfshelp: properly free active translator entries
    
    Previously the dynamically allocated field name leaks. Fix this by
    properly freeing the objects of type struct translator.
    
    * libfshelp/translator-list.c (translator_ihash_cleanup): Fix memory leak.

commit d0302f12c4d33eabbcbaf23e941ac33e1e364e3d
Author: Justus Winter <address@hidden>
Date:   Tue Oct 8 15:49:03 2013 +0200

    trans: rename a global variable
    
    Rename the global variable "path" to "target_path" to make it more
    unambiguous.
    
    * trans/mtab.c: Rename global variable "path".

commit 0fd357b48642f16c3adf8ed474f299daecef2613
Author: Justus Winter <address@hidden>
Date:   Tue Oct 8 15:49:02 2013 +0200

    Revert "tmpfs: drop privileges in the tmpfs translator"
    
    This reverts commit 7075bc11289355478659cd1610632a9299734afc.
    
    Dropping the unix privileges of the tmpfs translator causes problems
    with the passive translator startup. The function fshelp_fetch_root
    creates an auth handle containing the processes original UID and
    GID. But if the privileges were dropped before, this operation fails
    with EPERM.
    
    This commit also broke mkfifo(3), possibly for similar or related
    reasons.
    
    * tmpfs/tmpfs.c (main): Do not drop all privileges.

commit 9ba4ba4394e729560e72148a0e52160faf83893f
Author: Richard Braun <address@hidden>
Date:   Tue Oct 8 22:22:05 2013 +0200

    Fix memory leak in exec
    
    * exec/hashexec.c (check_hashbang): Unmap command arguments.

commit c87688a05a8b49479ee10127470cc60acebead4a
Author: Richard Braun <address@hidden>
Date:   Fri Oct 4 20:27:45 2013 +0200

    Fix mtab translator leak
    
    The node structure for the `mounts' entry is created and destroyed on
    each access, despite the fact a translator is activated on it. Fix the
    issue by caching it.
    
    * rootdir.c (rootdir_mounts_node): New variable.
    (rootdir_mounts_node_lock): Likewise.
    (rootdir_mounts_make_node): New function.
    (rootdir_translator_make_node): Remove function.
    (rootdir_entries): Replace `rootdir_translator_make_node' with
    `rootdir_mounts_make_node'.

commit 98b6f846b628e858acbae9258bac78cf54126d27
Author: Richard Braun <address@hidden>
Date:   Fri Oct 4 20:18:24 2013 +0200

    Fix memory leak in libnetfs
    
    * libnetfs/dir-lookup.c (netfs_S_dir_lookup): Properly jump to the
    single exit point if fshelp_fetch_root fails.

commit 6c3825f2b750bf9b913c6ea986739e648c470603
Author: Richard Braun <address@hidden>
Date:   Wed Oct 2 20:30:15 2013 +0200

    Check for negative sizes in file_set_size
    
    * libdiskfs/file-set-size.c (diskfs_S_file_set_size): Return EINVAL if
    size is negative.
    * libnetfs/file-set-size.c (netfs_S_file_set_size): Likewise.
    * libtreefs/s-file.c (treefs_S_file_set_size): Likewise.
    * storeio/io.c (trivfs_S_file_set_size): Likewise.
    * term/users.c (trivfs_S_file_set_size): Likewise.
    * trans/null.c (trivfs_S_file_set_size): Likewise.
    * trans/streamio.c (trivfs_S_file_set_size): Likewise.

commit a81c0c28ea606b0d0a2ad5eeb74071c746b7cdeb
Author: Richard Braun <address@hidden>
Date:   Fri Sep 27 20:49:45 2013 +0200

    Fix memory leak in libdiskfs
    
    * libdiskfs/dir-lookup.c (diskfs_S_dir_lookup): Properly jump to the
    single exit point if fshelp_fetch_root fails.

commit 6e517e5e6243c1014ab35d20a6b08d7fd6a52e9b
Author: Thomas Schwinge <address@hidden>
Date:   Fri Sep 27 21:41:02 2013 +0200

    GNU Hurd 0.5.
    
    * configure.ac (AC_INIT): Set version to 0.5.
    (AC_REVISION): Remove.
    * NEWS: Finalize changes for 0.5.
    * INSTALL: Update.
    * INSTALL-cross: Likewise.
    * README.CVS: Delete, but move some content...
    * README: ... here.  Update.

commit 3bdf8aad39d39168d096d3042b659fb9d2ef1651
Author: Thomas Schwinge <address@hidden>
Date:   Fri Sep 27 20:36:58 2013 +0200

    Decouple the Hurd version from the package version.
    
    * config.make.in (package-version): New variable.
    (hurd-version): Set to 0.3.
    * Makeconf (%: %.sh): Use package-version instead of hurd-version.
    * Makefile (stamp-version): Likewise.
    * doc/Makefile (stamp-version): Likewise.

commit 559ee510cb7058d9e0d3384302be4a0053e179cf
Author: Thomas Schwinge <address@hidden>
Date:   Fri Sep 27 15:54:01 2013 +0200

    Generate ChangeLog files for distributions.
    
    * gitlog-to-changelog: New file; import from gnulib's
    9fc81090f6c5590bd1b0e0fa5087577a2ee43a3e:build-aux/gitlog-to-changelog.
    * Makefile (ChangeLog.tar, gen-ChangeLog): New targets.
    ($(dist-version).tar): Depend on and use the former.
    (clean-misc): Clean up the generated files.

commit 76c5584261baae519063162fea47620e631005ce
Author: Thomas Schwinge <address@hidden>
Date:   Fri Sep 27 15:46:11 2013 +0200

    UFS is no more.
    
    * ChangeLog: Don't refer to bsdfsck/ChangeLog, ufs/ChangeLog,
    ufs-fsck/ChangeLog, ufs-utils/ChangeLog.
    
    Fixup for commit 84cf9c0f312637b670cc87224ff7e7c4da659e36.

commit 6b218d07bfb6bd1b16bec6f5ccce7301886d6b79
Author: Thomas Schwinge <address@hidden>
Date:   Fri Sep 27 15:44:57 2013 +0200

    * ChangeLog: Don't refer to serverboot/ChangeLog; it is no more.
    
    Fixup for commit a8744157214a302d84c8959b1ae99abe3ae2d7d2.

commit 51a25140f5314549b586a35e05e9f1e3319fd2cf
Author: Samuel Thibault <address@hidden>
Date:   Thu Sep 26 01:49:54 2013 +0200

    Update mailing lists
    
    * README: Update mailing lists.

commit d8d91cdaf9fd1e0a6d676a211da024fa7f52055b
Author: Samuel Thibault <address@hidden>
Date:   Tue Sep 24 10:46:35 2013 +0200

    Drop dead links
    
    * doc/hurd.texi (BSD Unix FS): Remove link to dropped section.

commit 3aee8e4b88269ec6fbc47779cc2acb5cce6d78b4
Author: Samuel Thibault <address@hidden>
Date:   Tue Sep 24 07:25:05 2013 +0200

    Fix missing renames
    
    * pflocal/sock.c (sock_connect, sock_shutdown): Rename SOCK_CONNECTED to
    PFLOCAL_SOCK_CONNECTED.

commit cf2aaecb77099ef8d2b9f9fb8ae0d1e362643271
Author: Samuel Thibault <address@hidden>
Date:   Tue Sep 24 00:19:08 2013 +0200

    Add --without-daemon option to configure
    
    * configure.ac (--without-daemon): Add option to disable libdaemon pkgconfig
    test.

commit fac7bebe532f05b6053315a6be505e49c500f4e0
Author: Samuel Thibault <address@hidden>
Date:   Sat Sep 21 21:13:08 2013 +0200

    Fix spurious port deallocation
    
    * utils/storeinfo.c (parse_opt): Do not deallocate `file` port, `store_free`
    does it already.

commit f73b0c1a45a7c73fcc034f7fd34ae906dd51b4ad
Author: Justus Winter <address@hidden>
Date:   Mon Sep 16 12:20:26 2013 +0200

    include: make /hurd/proc PID 3
    
    Using PID 0 is problematic for various reasons. Make /hurd/proc run as
    PID 3 instead.
    
    * include/pids.h: Make /hurd/proc PID 3.

commit 6c277e6e677df4b92f7588513f34f745af5fce24
Author: Justus Winter <address@hidden>
Date:   Mon Sep 16 12:20:25 2013 +0200

    proc: do not hand out PID 0
    
    Using PID 0 causes various problems. This makes genpid skip PID 0.
    
    * proc/mgt.c (genpid): Start PIDs at 1.

commit 969078c9755b7e28dcabe277629f757e20a19f1a
Author: Justus Winter <address@hidden>
Date:   Mon Jul 22 17:54:39 2013 +0200

    Serve mounts node with a passive translator record
    
    Make mounts a node with a passive translator record so that the mtab
    translator is started on access if it is available.
    
    * rootdir.c (MTAB_TRANSLATOR): New macro.
    (rootdir_mounts_get_translator): New function.
    (rootdir_mounts_exists): New function.
    (rootdir_translator_make_node): Likewise.
    (rootdir_entries): Add "mounts" node.

commit 690beb4d6679c66f45d09883408cb860337e31c2
Author: Justus Winter <address@hidden>
Date:   Mon Aug 5 12:11:30 2013 +0200

    Make start_code and end_code available in /proc/*/stat
    
    This makes killall5 actually kill any processes not marked as
    important.
    
    * process.c (process_file_gc_stat): Fix {start,end}_code.

commit 883e9a3bcbd0de620272c79b6a081b42b0832ef4
Author: Justus Winter <address@hidden>
Date:   Fri Jun 28 18:37:45 2013 +0200

    procfs: provide a more meaningful response to fsys_get_options
    
    Implement our own netfs_append_args function that provides the
    appropriate command line flags if the current values differ from the
    default values.
    
    * procfs/main.c (netfs_append_args): New function.

commit 2f13ab11aa71a2b8fb6e045a9ff81b7b2252cbe0
Author: Justus Winter <address@hidden>
Date:   Fri Jun 28 18:37:44 2013 +0200

    procfs: define macros for the default argument values
    
    Define a macro for the default value of each command line
    parameter. This allows one to generate a minimal response to
    fsys_get_options requests.
    
    * procfs/main.c: New macro definitions for default values.

commit 2baaf773daa797048ea96573fa01786d129f00fb
Author: Justus Winter <address@hidden>
Date:   Fri Jun 28 18:37:43 2013 +0200

    procfs: handle the --update parameter
    
    Split the argument handling into a common part and one for
    fsys_update_options. Handle the --update parameter; for procfs this is
    a no-op.
    
    * procfs/main.c (common_options): New variable.
    (runtime_argp_parser): Handle --update.
    (startup_argp): New variable.
    (netfs_runtime_argp_): New variable.

commit eda9e61107ed34a5f7a566fe6835a48c48aec1d3
Author: Justus Winter <address@hidden>
Date:   Mon Aug 26 19:32:24 2013 +0200

    Fix argument parsing
    
    The switch statement was missing the default case returning
    ARGP_ERR_UNKNOWN. This patch adds that.
    
    * main.c (argp_parser): Add default case.

commit fc7055f2461fa92bc17d67f02058399dca5736ae
Author: Justus Winter <address@hidden>
Date:   Mon Jul 22 17:54:38 2013 +0200

    rootdir.c: Fix declaration of rootdir_fakeself_exists.
    
    * rootdir.c (rootdir_fakeself_exists): Use the correct arguments for
      this kind of function.

commit 7802531da03626cfded497239e29a8ec2e4a3285
Author: Justus Winter <address@hidden>
Date:   Mon Jul 22 17:54:37 2013 +0200

    rootdir.c: Fix compiler warning
    
    * rootdir.c (rootdir_gc_meminfo): Use unsigned long constant.

commit 07b0785c207cd46751abcb17cf44168621bbc479
Author: Justus Winter <address@hidden>
Date:   Mon Jul 22 17:54:36 2013 +0200

    Makefile: add -lpthread
    
    * Makefile (LIBS): Link with libpthread.

commit 92132dda0f13b2f4e82048797acfb7c34da2f53f
Author: Samuel Thibault <address@hidden>
Date:   Mon Jul 22 22:57:38 2013 +0200

    Fix profile link
    
    * Makefile [PROFILE] (LIBS): Replace -lthreads with -lpthread

commit 890f987c15029d7e29f7deea0bba0b8d4ecaeaeb
Author: Justus Winter <address@hidden>
Date:   Tue Jul 16 10:51:22 2013 +0200

    Add the necessary infrastructure to serve passive translators
    
    * netfs.c (netfs_get_translator): New function.
    * procfs.c (procfs_get_translator): Likewise.
    * procfs.h (struct procfs_node_ops): New field get_translator.
    (procfs_get_translator): New function declaration.

commit 641249f6b143c4e22825e18e0dbe22bb04d21138
Author: Justus Winter <address@hidden>
Date:   Tue Jul 16 10:51:21 2013 +0200

    Fix default file ownership
    
    Formerly all nodes were created so that they were owned by root:root
    by default. This causes problems if the procfs translator is running
    as unprivileged user and serves passive translator records, because
    the file ownership is being used as credentials for starting
    translators. This obviously fails if the procfs translator is not root
    but is trying to acquire credentials including uid/gid 0.
    
    Fix this by using the uid/gid of the procfs translator by default.
    
    procfs.c (procfs_make_node): Fix default node ownership.

commit b1a3f96a8139c5ed3aac7b8a77b06ba4c0a877c7
Author: Justus Winter <address@hidden>
Date:   Tue Jul 16 10:51:20 2013 +0200

    Fix procfs_node_chmod
    
    Formerly only the mode_t bits cut out by S_IFMT were preserved, but
    this does not include S_IPTRANS. Fix this by preserving everything but
    the permission bits.
    
    * procfs.c (procfs_node_chmod): Fix bitmask.

commit 669dadfa07a5e63db8d9e572603872be88db52a3
Author: Justus Winter <address@hidden>
Date:   Sat Jul 20 17:47:05 2013 +0200

    procfs: Ignore arguments for compatibility with Linux' procfs.
    
    Ignore the --nodev, --noexec and --nosuid arguments.
    
    * procfs/main.c (argp_parser): Ignore some arguments for compatibility.

commit fd1f64a2e9e794a0184238bf3a0c4b7f5c6f963c
Author: Justus Winter <address@hidden>
Date:   Sat Jun 29 22:14:13 2013 +0200

    procfs: enable fsys_set_options
    
    Make procfs translators handle fsys_set_options requests by pointing
    netfs_runtime_argp to our argp struct.
    
    * procfs/main.c (netfs_runtime_argp): New variable.

commit ea6ea2f554bc81b856d5286c23c2b4c8ba303fb9
Author: Justus Winter <address@hidden>
Date:   Sat Jun 29 22:13:16 2013 +0200

    procfs: keep old config values if the parsing fails
    
    Previously if strtol failed the previous configuration value would get
    overwritten. Prevent this by storing the result in a temporary
    variable and update the configuration if the argument was parsed
    correctly and passed the sanity checks.
    
    * procfs/main.c (argp_parser): Keep old configuration in case a
    malformed value is encountered.

commit 26b18d8e7d8bb5f1bf9ae20e40e8b291db3cebd6
Author: Samuel Thibault <address@hidden>
Date:   Sat Jun 29 22:10:09 2013 +0200

    procfs: fix the error handling in argp_parser
    
    Do not exit using error (1, ..) but gracefully handle the error using
    argp_error. Also fix a typo ("the a user") while touching these lines.
    
    * procfs/main.c (argp_parser): Proper error handling.
    (argp_parser): Fix typo.

commit 9288839793069e589615e4bb47257b63501586ae
Author: Pino Toscano <address@hidden>
Date:   Sat Mar 2 17:36:36 2013 +0100

    Remove old hack for the "stat" permissions
    
    7550343b09a94dc1c659ad74dc75b3b77e7ab0bc added a better way to set the 
permissions of that file,
    so this old hack is not needed anymore.
    
    * process.c (process_lookup_pid): Do not change the mode of ENTRIES[2].hook.

commit 3081d01a686922957fa298a3101f3cb1e8200ce7
Author: Richard Braun <address@hidden>
Date:   Sat Jan 12 16:23:09 2013 +0100

    Report VM cache size in meminfo
    
    * rootdir.c: Include <mach/gnumach.h> and <mach/vm_cache_statistics.h>.
    (rootdir_gc_meminfo): Call vm_cache_statistics and return the VM cache size.

commit 1b7ad5c5d601b6388f0fc871b4fa42d231c05400
Author: Pino Toscano <address@hidden>
Date:   Thu Dec 6 17:51:58 2012 +0100

    Simple implementation of statfs
    
    Initial implementation of statfs reply, just returning the filesystem type 
and its id.
    
    * netfs.c: Include <sys/statvfs.h> and <unistd.h>.
    (netfs_attempt_statfs): Implement.

commit 9828a0bb4c6e69f401738013e4adfb4da95afc03
Author: Richard Braun <address@hidden>
Date:   Sun Nov 25 22:47:15 2012 +0100

    Move procfs to pthreads

commit b5014c2caaef8ee061c47b907a599526d9dbe875
Author: Cyril Roelandt <address@hidden>
Date:   Fri Oct 19 00:32:18 2012 +0200

    Fix procfs link
    
    Makefile (LIBS): Add -lfshelp

commit 9cb2ed46f9958cf80221a75df5a56aa82d46133e
Merge: da62c4e e50d744
Author: Samuel Thibault <address@hidden>
Date:   Tue Sep 11 02:31:15 2012 +0200

    Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/procfs into 
jkoenig/master

commit da62c4ea16e14fac7e298385a681043820d69ac4
Author: Pino Toscano <address@hidden>
Date:   Mon Sep 10 18:14:48 2012 +0200

    PID stat/status: show only the first word
    
    If a process changed its title to a multiword string, show only the first 
word
    of it.
    
    * process.c (args_filename_length): New function.
    (process_file_gc_stat): Use args_filename_length.
    (process_file_gc_status): Likewise.

commit e50d744b189595aa9e2f2351c57225980387362f
Merge: 1b55547 4d9dc03
Author: Thomas Schwinge <address@hidden>
Date:   Thu Jul 12 15:50:11 2012 +0200

    Merge jkoenig/master into master.
    
    This branch supersedes the previous one.

commit 4d9dc03bbc42fdfdac0dc72f2bfac1f37f70e8b7
Author: Pino Toscano <address@hidden>
Date:   Sat Jan 14 14:47:58 2012 +0100

    PID stat/status: show only the file name of processes
    
    The Linux /proc fs shows only the file name of processes in the
    `stat' and `status' files of every process directory, so adapt also
    procfs to show process file names.
    
    Add a new `args_filename` function, much similar to GNU's `basename'
    but returning the original string also when the resulting file name
    is an empty string.
    
    * process.c (args_filename): New function.
    (process_file_gc_stat): Wrap the `proc_stat_args' result with
    `args_filename'.
    (process_file_gc_status): Likewise.

commit f8471a5a6b20693d3c7afc0645de62c842b82bd3
Author: Samuel Thibault <address@hidden>
Date:   Tue Dec 27 18:13:00 2011 +0100

    Revert "Do not use msgport information"
    
    This reverts commit d9fc76bd4e8c9a459fad7152135b738496318415, as it breaks
    /proc/pid/stat

commit d9fc76bd4e8c9a459fad7152135b738496318415
Author: Samuel Thibault <address@hidden>
Date:   Tue Dec 27 17:31:20 2011 +0100

    Do not use msgport information
    
    * process.c (process_lookup_pid): Set PSTAT_NO_MSGPORT flag.
    * rootdir.c (get_boottime, get_idletime, rootdir_gc_cmdline): Set
    PSTAT_NO_MSGPORT flag.

commit f4dfd14bb77fd884a0e5afe306c677e7e873f41d
Author: Samuel Thibault <address@hidden>
Date:   Tue Feb 22 21:06:36 2011 +0100

    Add Buffers and Cached to /proc/meminfo
    
    * rootdir.c (rootdir_gc_meminfo): Add Buffers and Cached, set to 0.

commit b0db9bc55ce9b66d0fba511239c278d1a257a9ef
Author: Jeremie Koenig <address@hidden>
Date:   Wed Sep 1 10:49:11 2010 +0000

    Use 2 instead of 42 as the parent inode number
    
    * procfs.c (procfs_make_ino): Use 2 rather than 42 as a temporary hack,
      since 2 is the root's inode with ext2fs.

commit 8dc9884fc74243a6810fdcac603e1941962b666a
Author: Jeremie Koenig <address@hidden>
Date:   Wed Sep 1 10:19:49 2010 +0000

    Use the user-provided kernel PID for uptime
    
    * rootdir.c (get_boottime, get_idletime): replace KERNEL_PID with the
      opt_kernel_pid command-line option.
    * main.c (argp): Document the change.

commit 5c7310fd853620627b57c72ddcc3b212f29f6056
Author: Jeremie Koenig <address@hidden>
Date:   Thu Aug 26 23:03:40 2010 +0000

    Add copyright notices
    
    * dircat.c, dircat.h, main.c, main.h, netfs.c, process.c, process.h,
      procfs.c, procfs.h, procfs_dir.c, procfs_dir.h, proclist.c,
      proclist.h, rootdir.c, rootdir.h: Add copyright notices.

commit e25cfb3f3a843122df7e70e97992a97ffe81717a
Author: Jeremie Koenig <address@hidden>
Date:   Wed Aug 25 19:15:35 2010 +0000

    Update the to-do list.
    
    * TODO: Add more entries.

commit 0f3c9c2640ffd76f1d60f16dce6d16c47aac98b4
Author: Jeremie Koenig <address@hidden>
Date:   Wed Aug 25 19:04:24 2010 +0000

    Add some comments in rootdir.c
    
    * rootdir.c: Add page breaks to separate sections and add header
      comments for them.

commit 164db73bb35173f45a7eaba1984c3169cba778e8
Author: Jeremie Koenig <address@hidden>
Date:   Wed Aug 25 12:03:16 2010 +0000

    Add swap information to the top-level stat file
    
    * rootdir.c (rootdir_gc_meminfo): Add swap information.
    * TODO: Update.

commit e1c831a43ac1945db5a52ee6873856b9399dca76
Author: Jeremie Koenig <address@hidden>
Date:   Wed Aug 25 05:47:08 2010 +0000

    Add a PROFILE mode
    
    * Makefile: Change FOOFLAGS defaults to appropriate values when
      $(PROFILE) is defined.
    * rootdir.c: Add an "exit" file, which causes exit to be called
      when looked up, so that profiling data can be written to disk.

commit ca8277c6f507e54a043b84a8df9c55ac39a83c6e
Author: Jeremie Koenig <address@hidden>
Date:   Wed Aug 25 05:46:49 2010 +0000

    Fix leak in error case
    
    * process.c (process_lookup_pid): Fix leak in error case.

commit b3d304167929bc199e6789fd67ffea035e7fdbf1
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 20:43:16 2010 +0000

    Refresh nodes when they're read from the start.
    
    This is necessary for top, for instance, which keeps some files open and
    re-reads them regularly. As an extra bonus we can drop the refresh hack.
    
    * procfs.c, procfs.h: Remove the refresh hack.
      (procfs_refresh): New function, invalidates the cached contents.
    * netfs.c (netfs_attempt_read, netfs_get_dirents): Call
      procfs_refresh when the read is from offset 0.
    * proclist.c (proclist_make_node): Remove the refresh hack.
    * dircat.c (dircat_make_node): Likewise.
      (dircat_get_contents): Use procfs_refresh to avoid keeping old data
      from the component nodes.

commit 7b027a34676880bded1a05a5c47bfa85a6e79092
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 20:21:52 2010 +0000

    Make sure the clock never runs backwards.
    
    * process.c, rootdir.c: When converting timeval structures
      into seconds or jiffies, make sure that floating point rounding errors
      don't make the clock the result jump backwards on second boundaries.

commit 434f79cbfa00c7370724dc25091b5a42bdf8d9e1
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 19:04:48 2010 +0000

    Fix the global idle time
    
    * rootdir.c: Replace INIT_PID by KERNEL_PID, for boot time and
      idle time purposes.  (get_idletime): New function, queries the
      kernel's idle thread.  (rootdir_gc_uptime, rootdir_gc_stat): Use the
      new function and provide the real idle time.

commit 7550343b09a94dc1c659ad74dc75b3b77e7ab0bc
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 16:46:04 2010 +0000

    Cleanup pass on process.c
    
    * process.c: Reorder some of the code.  Improve comments.
      Jiffies and clock tick are the same thing, right?  Replace the stat
      mode and cleanup hacks by more straightforward solutions.

commit f522af65aa004fea09705c74115836c6acd1cddb
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 14:15:54 2010 +0000

    Revamp procfs_dir
    
    * procfs_dir.c, procfs_dir.h: Revamp the interface to make
      the more complicated use cases somewhat less hackish.
    * process.c: Update, specify a default make_node function.
    * rootdir.c: Likewise; make this optional "self" link use case
      somewhat less hackish.

commit 4646c4a3ef6171a0ddec4fcfe0c6aa34b50501cd
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 11:54:10 2010 +0000

    Improve the interface for dircat_make_node
    
    * dircat.c, dircat.h (dircat_make_node): Use an explicit
      array size for DIRS, fail with ENOMEM is any of them is NULL, and
      release the reference on the non-NULL nodes on any error.
    * main.c (root_make_node): Use the new interface.

commit 6e202c432e2f16dfa83a7dc21b759c03623fa394
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 11:33:22 2010 +0000

    Detect asprintf's ENOMEM in procfs.c rather than everywhere
    
    * procfs.h: Make CONTENTS_LEN an ssize_t rather than a size_t,
      and document the change.
    * procfs.c (procfs_get_contents): Initialize CONTENTS_LEN to a
      negative value, and fail with ENOMEM if it's still negative after the
      callback returns.  (everywhere): Update to ssize_t.
    * dircat.c, netfs.c, process.c,
      procfs_dir.c, proclist.c, rootdir.c: Update to
      ssize_t and the new GET_CONTENTS semantics.

commit 0f2bdacd6ad3dbcc905925dee12cb30918c33a11
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 11:24:29 2010 +0000

    Make contents a char* to avoid typecasts all over the place
    
    * procfs.h (procfs_cleanup_contents_with_free,
      procfs_cleanup_contents_with_vm_deallocate, procfs_get_contents,
      struct procfs_ops): Change CONTENTS from a void pointer to a char one.
    * dircat.c, netfs.c, process.c, procfs.c,
      procfs_dir.c, proclist.c, rootdir.c: Update.

commit a269783a41ae8b18e5b24d934c96ce9e90de3067
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 11:02:48 2010 +0000

    Remove the unused procfs_file module
    
    * procfs_file.c, procfs_file.h: Remove.
    * Makefile: Remove procfs_file.

commit 0439361f817c3f610c1f5ec859bd302867472e50
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 11:02:13 2010 +0000

    Fix the handling of processes without an owner
    
    * main.c (argp_parser): New option --anonymous-owner.
    * main.h: Publish it.
    * process.c (process_lookup_pid): Use it to set the file owner
      uid of non-owned processes.

commit 4deaca2ce2c4ed2c5ab53f57a7747c71126a8da7
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 09:06:01 2010 +0000

    Use a global ps_context
    
    * proclist.c, proclist.h (proclist_create_node): Use a
      ps_context passed by the caller; errors are no longer possible, rename
      to proclist_make_node and change the signature accordingly.
    * rootdir.c, rootdir.h (rootdir_create_node): Likewise.
    * main.c (main): Create the ps_context here and pass it to
      root_make_node.  (root_make_node): Pass it to proclist_make_node and
      rootdir_make_node.

commit 4f40fb6fbfa95c51b6abfceffcd0e1ce80824e70
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 09:05:30 2010 +0000

    Add a TODO-list
    
    * TODO: New file.

commit d67e76dbb63e277f0d503224e63e85cc5d91ac11
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 08:25:07 2010 +0000

    netfs_server_loop never returns
    
    * main.c: Don't call netfs_server_loop repeatedly; it should
      never return.

commit 33bfc249fd692910bb1e3f7a5820d31dfda0f284
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 08:24:43 2010 +0000

    Handle errors in main
    
    * main.c (main): Handle errors from argp_parse and
      root_make_node.

commit 25bad336ed7af83bfb78b2a3534fdf223554bfc0
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 07:35:59 2010 +0000

    Add a --compatible option
    
    * main.c (argp_parser): Add --compatible, which sets the options
      required for compatibility with the procps tools.

commit abd1ad000a2861b46df445888365678686e31bcb
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 07:14:45 2010 +0000

    Add a status file to process directories
    
    * process.c: Add a status file.

commit e873ff83afba08ff61a5e98ab90d5ee05ab5c601
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 05:44:37 2010 +0000

    Add statm to process directories
    
    * process.c: Add the statm file.

commit e3707dc9deb28d5144836032a54dbc028247835d
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 05:19:19 2010 +0000

    Add a global cmdline file
    
    * main.c (argp_parser, main): Add the --kernel-pid option.
    * main.h: Publish it.
    * rootdir.c (rootdir_gc_cmdline): New function.

commit 0ef322973a8b9dc9c0f5ba8155ad780016f3654f
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 00:52:24 2010 +0000

    Add meminfo and vmstat
    
    * rootdir.c: Add a (non-empty) meminfo and a vmstat file.

commit 4665f087fde174a9de3e1c3f3de090dd4bfa85e0
Author: Jeremie Koenig <address@hidden>
Date:   Sun Aug 22 21:23:36 2010 +0000

    Add a fake-self option to control the self symlink
    
    * main.c (argp_parse, main): Add the --fake-self option.
    * main.h: Publish it.
    * rootdir.c (rootdir_gc_fakeself, rootdir_entries,
      rootdir_create_node): Use it.

commit 5714e1cef2584410a7823c7ead9d2435141fb0c4
Author: Jeremie Koenig <address@hidden>
Date:   Sun Aug 22 20:46:54 2010 +0000

    Add --stat-mode to override the perms for [pid]/stat
    
    * main.c (argp_parser, main): Add the --stat-mode option.
    * process.c (process_lookup_pid): Use it.

commit b3427143ae8dc628cb3748da7618700c6bd7ac9e
Author: Jeremie Koenig <address@hidden>
Date:   Sun Aug 22 20:17:54 2010 +0000

    Add --clk-tck to set the clock unit
    
    * main.c (argp_parser, main): Add and parse the --clk-tck option.
    * main.h: Publish opt_clk_tck.
    * process.c (sc_tc): Use the user-provided clock frequency.
    * rootdir.c (rootdir_gc_stat): Likewise.

commit f9ddb679942b6f4309d05b5462fe5cbb3d0a2beb
Author: Jeremie Koenig <address@hidden>
Date:   Sun Aug 22 19:33:43 2010 +0000

    Play nice with the procps old_Hertz_hack
    
    * rootdir.c (rootdir_gc_uptime, rootdir_gc_stat): assume a
      completely idle rather than completely busy system, so that the idle
      seconds can be meaningfully divided by the idle jiffies by procps.

commit c68fc8b783804e093551d93cc1b8c10964cdaaeb
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 00:55:29 2010 +0000

    Add an empty meminfo root file
    
    * rootdir.c: Add "meminfo", empty for now.

commit aa3bac054364aa2d3614ded28df4980639184319
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 23 00:55:11 2010 +0000

    Add a fake "self" symlink
    
    * rootdir.c: Add a fake "self" symlink which always points to
      init.

commit efb8515465dcb03526a35bf87b549cac97bbab8c
Author: Jeremie Koenig <address@hidden>
Date:   Sat Aug 21 19:18:59 2010 +0000

    Add loadavg
    
    * rootdir.c: Add the root file "loadavg".

commit 2717c43bca6f920c4d3b0909c33bf3c1f76a70a9
Author: Jeremie Koenig <address@hidden>
Date:   Sat Aug 21 18:08:17 2010 +0000

    New root files: version, uptime, stat
    
    * rootdir.c, rootdir.h: New files.
    * main.c: Use rootdir_create_node.
    * Makefile: Add the rootdir module.

commit 80e439d146f661c416b7f42c4180b16aae7ac2f7
Author: Jeremie Koenig <address@hidden>
Date:   Sat Aug 21 18:06:16 2010 +0000

    Set a restrictive mode on some sensitive files
    
    * process.c (process_file_make_node, entries): Set the environ
      and stat files as readable only by the owner of the process.

commit 75f53efdc66be8c6ffac31bd17a309f9065e273c
Author: Jeremie Koenig <address@hidden>
Date:   Sat Aug 21 11:21:59 2010 +0000

    Encapsulate access to node->nn_stat
    
    * procfs.c, procfs.h (procfs_node_chown,
      procfs_node_chmod, procfs_node_chtype): New functions, encapsulate
      access to some nn_stat fields.
    * process.c (process_lookup_pid): Use procfs_node_chown instead
      of direct access.

commit a45606d0036565c468b462a207575bf2b4077fd8
Author: Jeremie Koenig <address@hidden>
Date:   Sat Aug 21 11:09:36 2010 +0000

    Implement symlinks
    
    * netfs.c (netfs_validate_stat): For symlinks, fetch the contents
      and propagate their length into the nn_stat.st_size field.
      (netfs_attempt_readlink): Implement using procfs_get_contents.

commit 1f1661d6a5b6f22acb48460b5304e29af2a0a554
Author: Jeremie Koenig <address@hidden>
Date:   Sat Aug 21 09:26:09 2010 +0000

    Use libps and enhance [pid]/stat
    
    * Makefile: Add libps to the $(LIBS).
    * proclist.c, proclist.h: Embed the proc server port in a
      ps_context structure. (proclist_make_node): Change to prototype to
      allow for the possibility of error.  Rename to proclist_create_node to
      reflect the change and non-triviality.
    * process.c, process.h: Revamp.  Use a full-blown procstat
      structure instead of just the procinfo fetched from the process
      server.  Use the additional data to complement [pid]/stat.
      (process_lookup_pid): Get a ps_context structure instead of a port to
      the process server.
    * main.c (root_make_node): Convert to the new interface for
      proclist_create_node.

commit 086569ee636d91a820aa23031dda3cb74bab9505
Author: Jeremie Koenig <address@hidden>
Date:   Sat Aug 21 09:25:27 2010 +0000

    Handle the ref counter spinlock on cleanup
    
    * netfs.c (netfs_node_norefs): Handle the reference counters
      spinlock so as to avoid deadlocking on reentry.

commit 2c7dcef74c3259d2d5db7a11f5c77d18d3a51e85
Author: Jeremie Koenig <address@hidden>
Date:   Thu Aug 19 23:10:11 2010 +0000

    Invent path-based inode numbers
    
    * procfs.h, procfs.c (procfs_make_ino): New function,
      invents an inode number by hashing the parent's and the name of an
      entry.  (procfs_lookup): Use it to assign an inode number to child
      nodes at lookup time.
    * main.c (root_make_node): Assign an arbitrary inode number to
      the root directory.

commit c6c770c33eb0f23e7e8e04976c711653cdf1a41d
Author: Jeremie Koenig <address@hidden>
Date:   Thu Aug 19 07:48:30 2010 +0000

    Implement lookup for . and ..
    
    * procfs.c (procfs_lookup): Keep track of the parent directory,
      implement the lookup of the dot-directories.  (procfs_cleanup):
      Release the reference to the parent node, if applicable.
    * procfs.h: Add a comment about the parent reference.
    * netfs.c (netfs_attempt_lookup): Lock the looked up node after
      the directory has been unlocked, in case they are the same.

commit 4ac169deaa1eb4c8df4a49fc940700971fa5863a
Author: Jeremie Koenig <address@hidden>
Date:   Thu Aug 19 04:52:17 2010 +0000

    Add the dot entries to directories
    
    * procfs_dir.c (procfs_dir_get_contents): Prepend the . and ..
      entries to the ones from the given table.

commit 97e598086b37583585b455d2b804b6e49d97ea85
Author: Jeremie Koenig <address@hidden>
Date:   Thu Aug 19 03:12:27 2010 +0000

    Add a basic [pid]/stat file
    
    * process.c: Add a basic stat file.

commit ef370b0967024ced9296ff2028abc1b154c0a951
Author: Jeremie Koenig <address@hidden>
Date:   Wed Aug 18 21:06:08 2010 +0000

    Set the owner of process directories.
    
    * process.c (process_make_node): Use the owner_uid from the
      procinfo structure to set the owner of the created directory.

commit 56d301e212ac1964223cff8ef9c34889cb1a6e75
Author: Jeremie Koenig <address@hidden>
Date:   Wed Aug 18 20:44:54 2010 +0000

    Fuse the proclist into the root node
    
    * dircat.c, dircat.h: New files, merge directories.
    * Makefile: Add the dircat module.
    * main.c: Use dircat to merge the proclist into the root
      directory, instead of having it as a stand-alone one.
    * procfs.h, procfs.c: Add a "refresh hack" to have the
      contents of the root directory recreated on each request.
    * proclist.c (proclist_make_node): Enable the hack in question.

commit 2fb5b93b4cd56fd68b525371ba63b0933b61d03a
Author: Jeremie Koenig <address@hidden>
Date:   Tue Aug 17 22:20:32 2010 +0000

    Fetch process information and reject the non-existing ones
    
    * process.c, process.h (process_make_node): Make static,
      include a procinfo structure into the node information.
      (process_lookup_pid): New function, replaces process_make_node as the
      outer interface, returns an error for non-existing processes.
    * proclist.c (proclist_lookup): Convert to the new interface.

commit c62d5ff73ceaad21bb0784ed6098d307a625b10d
Author: Jeremie Koenig <address@hidden>
Date:   Tue Aug 17 20:34:58 2010 +0000

    Add real process nodes
    
    * process.c, process.h: New files, implement a process
      directory with cmdline and environ files.
    * Makefile: Add the process module.
    * proclist.c: Replace stub pid files with the real thing.

commit ba139824fa06a97f2a3b1cc4c6085d10a83ec2b9
Author: Jeremie Koenig <address@hidden>
Date:   Tue Aug 17 17:27:54 2010 +0000

    More cleanup possibilities
    
    * procfs.c, procfs.h: Extend the signature of the
      cleanup_contents callback in the procfs_node_ops structure to include
      the hook and contents_len.  (cleanup_contents_with_free,
      cleanup_contents_with_vm_deallocate): New functions, can be used as
      a cleanup_contents callback for simple cases.
    * procfs_dir.c, procfs_dir.h (procfs_dir_make_node):
      Update, add a cleanup callback, make sure the cleanup callback is
      invoked if there is an error.
    * proclist.c (proclist_make_node), main.c (main): Update to match
      the new interfaces.

commit ac75e3648e6a9c3a8cf45d5fa491abd3a3ab3613
Author: Jeremie Koenig <address@hidden>
Date:   Tue Aug 17 16:48:55 2010 +0000

    Fix the failure semantics of procfs_make_node
    
    * procfs.c (procfs_make_node): Invoke the cleanup callback on
      failure, so that callers don't have to.
    * procfs.h: Document the change.
    * procfs_dir.c (procfs_dir_make_node), procfs_file.c
      (procfs_file_make_node), proclist.c (proclist_make_node):
      Update to reflect the change.

commit 3907bbbcfb806799a5349e46a2b804307a0e9836
Author: Jeremie Koenig <address@hidden>
Date:   Tue Aug 17 12:49:33 2010 +0000

    Add the list of processes as a directory
    
    * proclist.h, proclist.c: New files.
    * main.c: Add a proclist directory based on them.
    * Makefile: Include the proclist module.

commit 56ba0ac1e3a3f32763060ab862a6f0054c8a50bf
Author: Jeremie Koenig <address@hidden>
Date:   Tue Aug 17 10:26:12 2010 +0000

    Implement simple directories
    
    * procfs_dir.h: New file; declare the procfs_dir_make_node
      function, based on the procfs_dir_entry structure.
    * procfs_dir.c: New file; implement simple directories.
    * Makefile: Add the procfs_dir module.
    * main.c: Use it.

commit 0a4c7a1ca8bff458eb11322d2c94ec9ffd832524
Author: Jeremie Koenig <address@hidden>
Date:   Tue Aug 17 10:10:22 2010 +0000

    Add a helper module for simple regular files
    
    * procfs_file.h: New file, declares procfs_file_make_node.
    * procfs_file.c: New file, implements procfs_file_make_node.
    * main.c: Use them.
    * Makefile: Add the procfs_file module.

commit d938e96e59a41d5eaa11040513815b757e58eb0c
Author: Jeremie Koenig <address@hidden>
Date:   Tue Aug 17 09:43:29 2010 +0000

    Basic infrastructure
    
    * procfs.h: New file; basic interfaces for procfs nodes.
    * procfs.c: New file; implement the basic infrastructure.
    * netfs.c: New file; bridge libnetfs and the procfs interfaces.
    * main.c: New file; mostly a "Hello, World!" for now.
    * Makefile: New file; standalone for now.

commit 1b55547480eff13851f2d53ff96afbace11c6004
Author: Jeremie Koenig <address@hidden>
Date:   Mon Aug 16 13:36:52 2010 +0200

    Implement /proc/mounts as a symlink to /etc/mtab
    
    * procfs_nonpid_files.c (procfs_create_mounts): New function.
    * procfs_dir.c (procfs_fill_root_dir): Call procfs_create_mounts.
    
    Signed-off-by: Jeremie Koenig <address@hidden>

commit 5af547e7fc9ddc0b472b99c6bdb7341f6204e43f
Author: Jeremie Koenig <address@hidden>
Date:   Fri Aug 13 19:05:14 2010 +0200

    Set an appropriate st_mode on symlinks.
    
    * procfs_pid_files.c (update_pid_entries): When symlink_target is not NULL, 
set
    st_size to the symlink length and st_mode to S_IFLNK | 0777.

commit 5d011324a721d7cf3babfe6aa068e247c7f27f42
Author: Jeremie Koenig <address@hidden>
Date:   Fri Aug 13 19:05:13 2010 +0200

    update_pid_entries(): fix awkwardly indented uninitialized memory leak
    
    * procfs_pid_files.c (update_pid_entries): Replace dynamic allocation of
    `stat' with automatic allocation. Memset `stat' to 0.

commit d76613f23eec2a66f4727c69fcec3b5e3be3da22
Author: Thomas Schwinge <address@hidden>
Date:   Sun Aug 1 13:28:31 2010 +0200

    Switch to the new ChangeLog style.
    
    * ChangeLog: Wipe out content, and add instructions about how to get it 
back.

commit edb4593c38d421b5d538b221a991b50c36fdba15
Author: Samuel Thibault <address@hidden>
Date:   Mon May 31 02:23:00 2010 +0200

    2010-05-31  Samuel Thibault  <address@hidden>
    
            * procfs_nonpid_files.c (procfs_read_nonpid_meminfo): Print swap 
sizes
            using %llu.

commit e58f247f9c3a95ea2805fe132777d192ef51f6d1
Author: Samuel Thibault <address@hidden>
Date:   Fri Dec 12 01:48:00 2008 +0100

    2008-12-12  Samuel Thibault  <address@hidden>
    
        * procfs_nonpid_files.c (procfs_read_nonpid_meminfo): Divide by
        1024 value returned by get_swap_size and get_swap_free to get
        kilobytes.

commit 7e7201c453ad7faa5d26625ca9d263ee625ef5ed
Author: Madhusudan.C.S <address@hidden>
Date:   Tue Sep 2 00:33:00 2008 +0200

    2008-09-02  Madhusudan.C.S  <address@hidden>
    
        * netfs.c: (netfs_get_dirents): Add call to
        procfs_dir_entries_remove().

commit 7a8b315855fc8edba2003fa69cb86cf664f4c2ec
Author: Madhusudan.C.S <address@hidden>
Date:   Sat Aug 30 22:48:00 2008 +0200

    2008-08-30  Madhusudan.C.S  <address@hidden>
    
        *  procfs_dir.c: (procfs_dir_create): Assign newly created directory to
        its pointer in netnode.
        (procfs_dir_remove): Removed function.
        (free_entry): New function.
        (ordered_unlink): Likewise.
        (delete): Likewise.
        (sweep): Likewise.
        (procfs_dir_entries_remove): Likewise.
        (is_in_pid_list): Removed call to make_dir_invalid ().
        (procfs_fill_root_dir): struct stat *stat ->  struct stat stat.
        Add Read and Execute permissions to all in stat.st_mode.
        Set stat.st_nlink to 1.
        Set stat.st_size to 0.
        Add struct proc_stat *ps definition.
        Set struct proc_stat data from _proc_stat_create () function and
        set stat.st_uid and stat.st_gid from the data in that structure.
        * procfs_pid_files.c: (update_pid_entries): Add Read permissions
        to all in stat->st_mode.

commit fdd74966f222b67aa3161e809c6e9d8aacb16b12
Author: Madhusudan.C.S <address@hidden>
Date:   Sat Aug 30 22:20:00 2008 +0200

    2008-08-29  Madhusudan.C.S  <address@hidden>
    
        * AUTHORS: File removed.
        * COPYING: Likewise.
        * README: Likewise.

commit b33bac72fa26be8676a6da73e0b13f51bcd40034
Author: Madhusudan.C.S <address@hidden>
Date:   Fri Aug 29 21:34:00 2008 +0200

    2008-08-29  Madhusudan.C.S  <address@hidden>
    
        * ChangeLog: Revised.

commit 80e2bfc9ee29a5ecac3a9b8eaa2d470ae30222c9
Author: Madhusudan.C.S <address@hidden>
Date:   Fri Aug 29 18:42:00 2008 +0200

    2008-08-29  Madhusudan.C.S <address@hidden>
    
            * Makefile: (Copyright): 1997, 2000 -> 2008
            (CC): Removed.
            (CFLAGS): Removed.
            (INCLUDES): Removed.
            (all): Removed.
            ($(target)): Removed.
            (%.o): Removed.
            (HURDLIBS): -lnetfs -> netfs,
            -lfshelp -> fshelp,
            -liohelp -> iohelp, -lthreads -> threads,
            -lports -> ports, -lihash -> ihash,
            -lps -> ps,
            -lshouldbeinlibc -> shouldbeinlibc.
            (include): Add include ../Makeconf

commit 4cce52a1ec161008243f5bee63df7f6230c0f7e6
Author: Madhusudan.C.S <address@hidden>
Date:   Mon Aug 18 20:26:00 2008 +0200

    2008-08-18  Madhusudan.C.S <address@hidden>
    
            * procfs_nonpid_files.c:
            (procfs_write_nonpid_stat): Changed to
            procfs_read_nonpid_stat.
            (procfs_write_nonpid_meminfo): Changed to
            procfs_read_nonpid_meminfo.
            (procfs_write_nonpid_loadavg): Changed to
            procfs_read_nonpid_loadavg.
            (procfs_write_nonpid_uptime): Changed to
            procfs_read_nonpid_uptime.
            (procfs_write_nonpid_version):Changed to
            procfs_read_nonpid_version.
            * procfs_pid_files.c:
            (procfs_write_stat_file): Changed to
            procfs_read_stat_file.
            Changed the comment correspondingly from
            Write to Read.
            (procfs_write_cmdline_file ): Changed to
            procfs_read_cmdline_file.
            Changed the comment correspondingly from
            Write to Read.
            (procfs_write_status_file): Changed to
            procfs_read_status_file.
            Changed the comment correspondingly from
            Write to Read.
            (procfs_write_statm_file): Changed to
            procfs_read_statm_file.
            Changed the comment correspondingly from
            Write to Read.
            (procfs_write_files_contents): Changed to
            procfs_read_files_contents.
            Changed the comment correspondingly from
            Write to Read.
            Changed the call to procfs_write_nonpid_stat
            to procfs_read_nonpid_stat.
            Changed the call to procfs_write_stat_file
            to procfs_read_stat_file.
            Changed the call to procfs_write_cmdline_file
            to procfs_read_cmdline_file.
            Changed the call to procfs_write_status_file
            to procfs_read_status_file.
            Changed the call to procfs_write_statm_file
            to procfs_read_statm_file.
            Changed the call to procfs_write_nonpid_meminfo
            to procfs_read_nonpid_meminfo.
            Changed the call to procfs_write_nonpid_loadavg
            to procfs_read_nonpid_loadavg.
            Changed the call to procfs_write_nonpid_uptime
            to procfs_read_nonpid_uptime.
            Changed the call to procfs_write_nonpid_version
            to procfs_read_nonpid_version.
            netfs.c: (netfs_attempt_read): Changed
            the call from procfs_write_files_contents
            to procfs_read_files_contents.

commit 151d56afe0d7d9eb527fb0a194f383435b2c0f65
Author: Madhusudan.C.S <address@hidden>
Date:   Mon Aug 18 19:45:00 2008 +0200

    2008-08-18  Madhusudan.C.S <address@hidden>
    
            * README: Initial Documentation.

commit 5bb07a3cb626b18aedfa463b6b344bf0fd963e71
Author: Madhusudan.C.S <address@hidden>
Date:   Mon Aug 18 19:34:00 2008 +0200

    2008-08-18  Madhusudan.C.S <address@hidden>
    
            * procfs_nonpid_files.c: (get_uptime):
            Changed the parameter type from double to
            struct timeval.
            Changed the parameter name from uptime_secs
            to uptime.
            Removed uptime variable.
            Changed timersub to use the passed pointer
            instead of the local variable.
            Removed the calculation of uptime_secs.
            (get_total_times): Changed the parameters
            type from double to struct timeval.
            Changed the parameters name from
            total_user_time_secs to total_user_time
            and total_system_time_secs to
            total_system_time.
            New variables total_user_time_tmp,
            total_system_time_tmp and tmpval of type
            struct timeval.
            Call timerclear to clear the tmp variables.
            Remove calculation of times in seconds and
            do the same on struct timeval variables
            throughout using the timeradd macro.
            Assign values of temporary local variables
            to the pointers passed as parameters.
            (procfs_write_nonpid_stat): Replaced
            variables that hold time in seconds with
            struct timeval type variables and jiffy_t
            type variables.
            Argument to get_uptime changed from
            uptime_secs to uptime.
            Arguments to get_total_times changed from
            total_user_time_secs to total_user_time and
            total_system_time_secs to total_system_time.
            Replace arithematic time subtraction with
            timersub macro.
            Convert all the times in struct timeval type
            variables to jiffy_t type.
            Changed the type casting for the asprintf
            arguments to be compatible with jiffy_t type.
            (procfs_write_nonpid_uptime): Replaced
            variables that hold time in seconds with
            struct timeval type variables.
            Argument to get_uptime changed from
            uptime_secs to uptime.
            Arguments to get_total_times changed from
            total_user_time_secs to total_user_time and
            total_system_time_secs to total_system_time.
            Replace arithematic time subtraction with
            timersub macro.
            Convert all the times in struct timeval type
            variables to seconds.

commit a027dcc41d381a3c76a5b20d4d55ad9821af2308
Author: Madhusudan.C.S <address@hidden>
Date:   Mon Aug 18 17:27:00 2008 +0200

    2008-08-18  Madhusudan.C.S <address@hidden>
    
            * procfs_nonpid_files.c:
            (procfs_write_nonpid_version): New function.
            * procfs_pid_files.c:
            (procfs_write_files_contents): Add a check
            to find if the read is requested for the
            version file and corresponding a call to it.

commit 0419c2813a91d0746cc70f4ecab33efca4b9440c
Author: Madhusudan.C.S <address@hidden>
Date:   Mon Aug 18 17:15:00 2008 +0200

    2008-08-14  Madhusudan.C.S <address@hidden>
    
            * procfs.h: (jiffy_t): New typedef.
            * procfs_pid.h: "procfs.h" is included.
            (struct procfs_pid_files): Changed all the
            occurrences of time_t to jiffy_t.
            * procfs_pid_files.c: Removed "procfs.h".
            (adjust_jiffy_time): Changed return type
            from time_t to jiffy_t.
            Changed the type of jiffy_time variable
            from time_t to jiffy_t.
            (get_live_threads_time): Changed the type
            of utime and stime from time_t to jiffy_t.
            (get_stat_data): Changed the type of utime
            and stime from time_t to jiffy_t.

commit 802ea16ef91b30bc4fa9a61779b5c3602219bb1d
Author: Madhusudan.C.S <address@hidden>
Date:   Mon Aug 18 16:53:00 2008 +0200

    2008-08-18  Madhusudan.C.S <address@hidden>
    
    * procfs/ChangeLog: ChangeLog: Revised.

commit c15f3bee8d46f05afe1d3f582778d74c7e706485
Author: Madhusudan.C.S <address@hidden>
Date:   Thu Aug 14 15:24:00 2008 +0200

    2008-08-14  Madhusudan.C.S <address@hidden>
    
    * ChangeLog: New file added to procfs
    * AUTHORS: New file added to procfs
    * COPYING: New file added to procfs
    * README: New file added to procfs
    * Makefile: New file added to procfs
    * bootstrap.c: New file added to procfs
    * netfs.c: New file added to procfs
    * node.c: New file added to procfs
    * procfs.c: New file added to procfs
    * procfs.h: New file added to procfs
    * procfs_dir.c: New file added to procfs
    * procfs_nonpid_files.c: New file added to procfs
    * procfs_pid.h: New file added to procfs
    * procfs_pid_files.c: New file added to procfs

-----------------------------------------------------------------------

Summary of changes:
 .gitignore                                    |   12 +
 ChangeLog                                     |    5 -
 INSTALL                                       |    6 +-
 INSTALL-cross                                 |    2 +-
 Makeconf                                      |   16 +-
 Makefile                                      |   96 ++-
 NEWS                                          |  106 ++-
 README                                        |   37 +-
 README.CVS                                    |   29 -
 TODO                                          |    4 -
 aclocal.m4                                    |    2 +-
 auth/Makefile                                 |    2 +-
 auth/auth.c                                   |   49 +-
 auth/auth.h                                   |   28 +
 auth/auth_mig.h                               |    5 -
 auth/authmutations.h                          |    6 -
 auth/mig-decls.h                              |   48 +
 auth/mig-mutate.h                             |   25 +
 benchmarks/Makefile                           |    1 -
 boot/Makefile                                 |    8 +-
 boot/boot.c                                   |  339 ++---
 boot/boot_script.h                            |    4 -
 config.make.in                                |   15 +-
 configure.ac                                  |   64 +-
 console-client/Makefile                       |   12 +-
 console-client/bdf.c                          |    2 +-
 console-client/bdf.h                          |    2 +-
 console-client/console.c                      |   26 +-
 console-client/current-vcs.c                  |    9 +-
 console-client/input.h                        |    2 +-
 console-client/timer.c                        |    1 -
 console-client/timer.h                        |    2 +-
 console-client/trans.c                        |   45 +-
 console-client/unicode.h                      |    1 -
 console-client/vga-dynafont.c                 |   17 +-
 console-client/vga-dynafont.h                 |    2 +-
 console-client/vga-hw.h                       |    5 +
 console-client/vga-support.c                  |   56 +-
 console-client/vga.c                          |   12 +-
 console-client/xkb/README                     |    2 +-
 console-client/xkb/TODO                       |    4 +-
 console-client/xkb/kstoucs.c                  |   41 +-
 console-client/xkb/parser.y                   |    6 +-
 console-client/xkb/xkb-data/keymap/hurd       |  182 ++--
 console-client/xkb/xkb-data/types/hurd        |    1 -
 console-client/xkb/xkb.c                      |    9 +-
 console-client/xkb/xkb.h                      |    2 +-
 console-client/xkb/xkbdata.c                  |    6 +-
 console-client/xkb/xkbtimer.c                 |    2 +-
 console/console.c                             |   40 +-
 console/display.c                             |   93 +-
 console/hurd.ti                               |    6 +-
 console/input.c                               |    2 +-
 console/input.h                               |    2 +-
 console/mutations.h                           |   11 +-
 console/pager.c                               |   33 +-
 console/priv.h                                |   41 -
 daemons/Makefile                              |    4 +-
 daemons/getty.c                               |   87 ++-
 daemons/lmail.c                               |    2 +-
 daemons/rc.sh                                 |   12 +-
 daemons/{runsystem.sh => runsystem.hurd}      |    0
 daemons/runsystem.sh                          |   79 +-
 defpager/Makefile                             |    1 -
 defpager/backing.c                            |    1 -
 defpager/defpager.c                           |    3 +-
 doc/Makefile                                  |    4 +-
 doc/hurd.texi                                 |   68 +-
 doc/navigating                                |    3 +-
 exec/Makefile                                 |    4 +-
 exec/elfcore.c                                |   30 +-
 exec/exec.c                                   |  112 ++-
 exec/execmutations.h                          |   15 +-
 exec/hashexec.c                               |   25 +-
 exec/hostarch.c                               |  123 +--
 exec/main.c                                   |  203 +++-
 exec/mig-decls.h                              |   46 +
 exec/priv.h                                   |    2 +-
 ext2fs/Makefile                               |    2 +-
 ext2fs/dir.c                                  |  113 +-
 ext2fs/ext2fs.c                               |   16 +-
 ext2fs/ext2fs.h                               |   34 +-
 ext2fs/getblk.c                               |   65 +-
 ext2fs/hyper.c                                |   19 +-
 ext2fs/ialloc.c                               |   16 +-
 ext2fs/inode.c                                |  232 +---
 ext2fs/pager.c                                |  159 ++-
 ext2fs/storeinfo.c                            |    1 +
 ext2fs/truncate.c                             |   16 +-
 fatfs/Makefile                                |    2 +-
 fatfs/dir.c                                   |   15 +-
 fatfs/fat.h                                   |    2 +-
 fatfs/fatfs.h                                 |   20 +-
 fatfs/inode.c                                 |  252 +---
 fatfs/main.c                                  |    9 +-
 fatfs/pager.c                                 |   99 +-
 fatfs/virt-inode.c                            |    6 -
 fstests/Makefile                              |    1 -
 fstests/fdtests.c                             |   24 +-
 fstests/fstests.c                             |   24 +-
 fstests/opendisk.c                            |    2 -
 ftpfs/dir.c                                   |   24 +-
 ftpfs/netfs.c                                 |    2 +-
 gitlog-to-changelog                           |  432 ++++++
 hurd/console.h                                |    2 +-
 hurd/default_pager.defs                       |    9 +-
 hurd/exec_startup.defs                        |    6 +-
 hurd/fs.defs                                  |   19 +
 hurd/fsys.defs                                |   21 +-
 hurd/gensym.awk                               |    1 -
 hurd/hurd_types.defs                          |  146 ++-
 hurd/hurd_types.h                             |    3 +
 hurd/ifsock.defs                              |    1 -
 hurd/iioctl.defs                              |    4 +
 hurd/interrupt.defs                           |    7 +-
 hurd/io.defs                                  |    2 +-
 hurd/paths.h                                  |    5 +-
 hurd/process.defs                             |   17 +-
 hurd/process_reply.defs                       |    2 +-
 hurd/process_request.defs                     |    7 +-
 hurd/shared.h                                 |    3 +-
 hurd/startup.defs                             |    1 -
 hurd/startup_notify.defs                      |    2 -
 hurd/term.defs                                |   18 +-
 include/pids.h                                |    7 +-
 init/Makefile                                 |   15 +-
 init/init.c                                   | 1617 ++---------------------
 init/stubs.c                                  |  139 --
 isofs/EXTENSIONS                              |    1 -
 isofs/Makefile                                |    2 +-
 isofs/ext.c                                   |    2 -
 isofs/inode.c                                 |  272 +----
 isofs/isofs.h                                 |   13 +-
 isofs/lookup.c                                |   22 +-
 isofs/main.c                                  |   17 +-
 isofs/pager.c                                 |    2 +-
 isofs/rr.c                                    |    6 +-
 libcons/demuxer.c                             |    1 -
 libcons/extra-version.c                       |    2 +-
 libcons/init-loop.c                           |    1 -
 libcons/mutations.h                           |    2 +-
 libcons/priv.h                                |    6 +
 libcons/vcons-add.c                           |    2 +-
 libcons/vcons-remove.c                        |    2 +-
 libcons/vcons-scrollback.c                    |    1 -
 libdirmgt/dirmgt.h                            |    2 -
 libdiskfs/Makefile                            |    5 +-
 libdiskfs/boot-start.c                        |   83 +-
 libdiskfs/conch-fetch.c                       |    1 -
 libdiskfs/demuxer.c                           |   45 +-
 libdiskfs/dir-init.c                          |    3 +-
 libdiskfs/dir-link.c                          |   26 +-
 libdiskfs/dir-lookup.c                        |  164 ++-
 libdiskfs/dir-mkfile.c                        |   24 +-
 libdiskfs/dir-readdir.c                       |   24 +-
 libdiskfs/dir-rename.c                        |    1 -
 libdiskfs/dir-renamed.c                       |   11 +-
 libdiskfs/dir-unlink.c                        |   20 +-
 libdiskfs/disk-pager.c                        |   36 +-
 libdiskfs/diskfs-pager.h                      |    1 +
 libdiskfs/diskfs.h                            |  213 +++-
 libdiskfs/extra-version.c                     |    2 +-
 libdiskfs/file-chflags.c                      |    8 +
 libdiskfs/file-chg.c                          |    2 +-
 libdiskfs/file-chmod.c                        |    1 +
 libdiskfs/file-exec.c                         |   24 +-
 libdiskfs/file-get-children.c                 |   96 ++
 libdiskfs/file-get-fs-opts.c                  |    1 +
 libdiskfs/file-get-source.c                   |   37 +
 libdiskfs/file-get-trans.c                    |   36 +-
 libdiskfs/file-get-transcntl.c                |   16 +-
 libdiskfs/file-getcontrol.c                   |   14 +-
 libdiskfs/file-getfh.c                        |    2 +-
 libdiskfs/file-lock-stat.c                    |   24 +-
 libdiskfs/file-lock.c                         |   26 +-
 libdiskfs/file-set-size.c                     |    2 +-
 libdiskfs/file-set-trans.c                    |   74 +-
 libdiskfs/file-statfs.c                       |    4 +-
 libdiskfs/file-syncfs.c                       |    6 +-
 libdiskfs/fsmutations.h                       |   23 +-
 libdiskfs/fsys-get-children.c                 |   99 --
 libdiskfs/fsys-get-source.c                   |   34 -
 libdiskfs/fsys-getfile.c                      |   12 +-
 libdiskfs/fsys-getroot.c                      |   95 +-
 libdiskfs/fsys-goaway.c                       |   33 +-
 libdiskfs/fsys-options.c                      |   16 +-
 libdiskfs/fsys-startup.c                      |   25 +-
 libdiskfs/fsys-syncfs.c                       |   11 +-
 libdiskfs/get-source.c                        |   11 +-
 libdiskfs/ifsock.c                            |    3 +-
 libdiskfs/init-first.c                        |   24 +-
 libdiskfs/init-init.c                         |   30 +-
 libdiskfs/init-main.c                         |   24 +-
 libdiskfs/init-startup.c                      |   39 +-
 libdiskfs/io-async.c                          |    1 -
 libdiskfs/io-duplicate.c                      |    3 +
 libdiskfs/io-map.c                            |    1 -
 libdiskfs/io-modes-get.c                      |    1 -
 libdiskfs/io-reauthenticate.c                 |    5 +
 libdiskfs/io-restrict-auth.c                  |    3 +
 libdiskfs/io-stubs.c                          |    1 -
 libdiskfs/io-version.c                        |   24 +-
 libdiskfs/io-write.c                          |    1 -
 libdiskfs/lookup.c                            |   31 -
 libdiskfs/name-cache.c                        |  409 ++++--
 libdiskfs/node-cache.c                        |  259 ++++
 libdiskfs/node-drop.c                         |   13 +-
 libdiskfs/node-make.c                         |   43 +-
 libdiskfs/node-nput.c                         |   50 +-
 libdiskfs/node-nputl.c                        |   12 +-
 libdiskfs/node-nref.c                         |    9 +-
 libdiskfs/node-nrefl.c                        |    4 +-
 libdiskfs/node-nrele.c                        |   48 +-
 libdiskfs/node-nrelel.c                       |    9 +-
 libdiskfs/node-times.c                        |   24 +-
 libdiskfs/node-update.c                       |   24 +-
 libdiskfs/opts-std-startup.c                  |    2 +-
 libdiskfs/peropen-make.c                      |    2 +-
 libdiskfs/peropen-rele.c                      |   21 +-
 libdiskfs/priv.h                              |    4 +-
 libdiskfs/protid-make.c                       |   10 +-
 libdiskfs/protid-rele.c                       |    2 -
 libdiskfs/readonly-changed.c                  |    2 +-
 libdiskfs/shutdown.c                          |   24 +-
 libdiskfs/sync-default.c                      |    2 +-
 libdiskfs/validate-author.c                   |    2 +-
 libdiskfs/validate-flags.c                    |    2 +-
 libdiskfs/validate-group.c                    |    2 +-
 libdiskfs/validate-mode.c                     |    2 +-
 libdiskfs/validate-owner.c                    |    2 +-
 libdiskfs/validate-rdev.c                     |    2 +-
 libfshelp/fetch-root.c                        |    6 +-
 libfshelp/fshelp.h                            |   27 +-
 libfshelp/get-identity.c                      |   66 +-
 libfshelp/lock-acquire.c                      |  122 ++-
 libfshelp/lock-init.c                         |   24 +-
 libfshelp/set-active.c                        |    1 -
 libfshelp/start-translator-long.c             |   17 +-
 libfshelp/start-translator.c                  |    2 +-
 libfshelp/transbox-init.c                     |    1 -
 libfshelp/translator-list.c                   |   74 +-
 libftpconn/create.c                           |    2 +-
 libftpconn/names.c                            |    1 -
 libftpconn/open.c                             |    2 +-
 libftpconn/unix.c                             |    4 +-
 libihash/ihash.c                              |  247 ++--
 libihash/ihash.h                              |  116 ++-
 libiohelp/handle_io_release_conch.c           |    1 -
 libiohelp/initialize_conch.c                  |    1 -
 libiohelp/iouser-free.c                       |    2 -
 libiohelp/return-buffer.c                     |    2 +-
 libnetfs/Makefile                             |    2 +-
 libnetfs/demuxer.c                            |   34 +-
 libnetfs/dir-link.c                           |    2 -
 libnetfs/dir-lookup.c                         |   58 +-
 libnetfs/dir-mkfile.c                         |    1 -
 libnetfs/dir-rename.c                         |    1 -
 libnetfs/drop-node.c                          |    2 -
 libnetfs/file-chauthor.c                      |    1 -
 libnetfs/file-get-children.c                  |  110 ++
 libnetfs/file-get-source.c                    |   37 +
 libnetfs/file-get-storage-info-default.c      |    2 +-
 libnetfs/file-getcontrol.c                    |    2 +-
 libnetfs/file-getlinknode.c                   |    2 -
 libnetfs/file-set-size.c                      |    3 +-
 libnetfs/file-set-translator.c                |   20 +-
 libnetfs/fsstubs.c                            |    1 +
 libnetfs/fsys-get-children.c                  |  112 --
 libnetfs/fsys-get-options.c                   |    6 +-
 libnetfs/fsys-get-source.c                    |   34 -
 libnetfs/fsys-getroot.c                       |    5 +-
 libnetfs/fsys-goaway.c                        |   10 +-
 libnetfs/fsys-set-options.c                   |   11 +-
 libnetfs/fsys-syncfs.c                        |    2 +-
 libnetfs/fsysstubs.c                          |    8 +-
 libnetfs/get-source.c                         |    4 +-
 libnetfs/init-init.c                          |    3 +
 libnetfs/init-loop.c                          |    1 -
 libnetfs/io-get-icky-async-id.c               |    1 -
 libnetfs/io-reauthenticate.c                  |   18 +-
 libnetfs/io-seek.c                            |    1 -
 libnetfs/io-stat.c                            |    1 -
 libnetfs/io-version.c                         |   24 +-
 libnetfs/io-write.c                           |    2 -
 libnetfs/make-node.c                          |   29 +-
 libnetfs/make-peropen.c                       |    1 -
 libnetfs/modes.h                              |    1 -
 libnetfs/mutations.h                          |   13 +-
 libnetfs/netfs.h                              |   42 +-
 libnetfs/nput.c                               |    1 -
 libnetfs/priv.h                               |   26 +
 libnetfs/release-peropen.c                    |    5 +
 libnetfs/set-get-trans.c                      |    4 +-
 libnetfs/shutdown.c                           |   24 +-
 libnetfs/trans-callback.c                     |    5 +-
 libpager/Makefile                             |   11 +-
 libpager/chg-compl.c                          |   17 +-
 libpager/data-request.c                       |   14 +-
 libpager/data-return.c                        |   26 +-
 libpager/data-unlock.c                        |   14 +-
 libpager/demuxer.c                            |  416 ++++++-
 libpager/lock-completed.c                     |   11 +-
 libpager/mig-decls.h                          |   48 +
 libpager/mig-mutate.h                         |   23 +
 libpager/no-senders.c                         |   43 -
 libpager/notify-stubs.c                       |   76 --
 libpager/object-init.c                        |   12 +-
 libpager/object-terminate.c                   |   18 +-
 libpager/offer-page.c                         |    1 -
 libpager/pagemap.c                            |    2 +-
 libpager/pager-attr.c                         |   13 +-
 libpager/pager-create.c                       |    4 -
 libpager/pager-flush.c                        |    1 -
 libpager/pager-memcpy.c                       |    2 +
 libpager/pager-return.c                       |    1 -
 libpager/pager-shutdown.c                     |    1 -
 libpager/pager-sync.c                         |    1 -
 libpager/pager.h                              |   37 +-
 libpager/priv.h                               |    8 -
 libpager/queue.h                              |   69 +
 libpager/seqnos.c                             |   69 -
 libpager/stubs.c                              |   18 +-
 libpipe/Makefile                              |    1 -
 libpipe/pipe.c                                |   33 +-
 libpipe/pq.c                                  |   12 +-
 libpipe/pq.h                                  |    2 +-
 libports/Makefile                             |    5 +-
 libports/begin-rpc.c                          |    2 -
 libports/bucket-iterate.c                     |   61 +-
 libports/claim-right.c                        |    6 +-
 libports/class-iterate.c                      |   10 +-
 libports/complete-deallocate.c                |   24 +-
 libports/count-class.c                        |    3 -
 libports/create-bucket.c                      |    7 +-
 libports/create-class.c                       |    1 -
 libports/create-internal.c                    |   47 +-
 libports/create-port-noinstall.c              |    3 -
 libports/create-port.c                        |    3 -
 libports/dead-name.c                          |    2 +-
 libports/destroy-right.c                      |   61 +-
 libports/extern-inline.c                      |   22 +
 libports/get-right.c                          |    2 +-
 libports/import-port.c                        |   28 +-
 libports/inhibit-all-rpcs.c                   |   28 +-
 libports/inhibit-bucket-rpcs.c                |    3 +-
 libports/inhibit-class-rpcs.c                 |   29 +-
 libports/init.c                               |    7 +-
 libports/interrupt-notified-rpcs.c            |    1 -
 libports/interrupt-operation.c                |   18 +-
 libports/lookup-port.c                        |   31 +-
 libports/manage-multithread.c                 |  167 ++-
 libports/manage-one-thread.c                  |   34 +-
 libports/mig-decls.h                          |   46 +
 libports/mig-mutate.h                         |   36 +
 libports/notify-dead-name.c                   |    5 +-
 libports/notify-msg-accepted.c                |    3 +-
 libports/notify-no-senders.c                  |    5 +-
 libports/notify-port-deleted.c                |    3 +-
 libports/notify-port-destroyed.c              |    3 +-
 libports/notify-send-once.c                   |    2 +-
 libports/port-deref-deferred.c                |  161 +++
 libports/port-deref-deferred.h                |   89 ++
 libports/port-deref-weak.c                    |   11 +-
 libports/port-deref.c                         |   36 +-
 libports/port-ref-weak.c                      |    6 +-
 libports/port-ref.c                           |    8 +-
 libports/ports.h                              |  112 ++-
 libports/reallocate-from-external.c           |   22 +-
 libports/reallocate-port.c                    |   19 +-
 libports/resume-all-rpcs.c                    |    2 -
 libports/resume-class-rpcs.c                  |    1 -
 libports/resume-port-rpcs.c                   |    3 -
 libports/transfer-right.c                     |   29 +-
 libps/fmt.c                                   |   15 +
 libps/procstat.c                              |   23 +-
 libps/ps.h                                    |    3 +-
 libps/spec.c                                  |   10 +-
 libshouldbeinlibc/Makefile                    |    8 +-
 libshouldbeinlibc/cacheq.c                    |    4 +-
 libshouldbeinlibc/canon-host.c                |    1 -
 libshouldbeinlibc/fsysops.c                   |    1 +
 libshouldbeinlibc/idvec-auth.c                |    1 +
 libshouldbeinlibc/idvec-impgids.c             |   14 +-
 libshouldbeinlibc/idvec-rep.c                 |    4 +-
 libshouldbeinlibc/idvec-verify.c              |    7 +-
 libshouldbeinlibc/idvec.c                     |    5 +-
 libshouldbeinlibc/idvec.h                     |    1 -
 libshouldbeinlibc/localhost.c                 |    2 +-
 libshouldbeinlibc/maptime.c                   |   17 +-
 libshouldbeinlibc/maptime.h                   |    2 +
 libshouldbeinlibc/nullauth.c                  |    2 -
 libshouldbeinlibc/portxlate.c                 |   14 +-
 libshouldbeinlibc/refcount.c                  |   23 +
 libshouldbeinlibc/refcount.h                  |  326 +++++
 libshouldbeinlibc/shared-dom.c                |    3 -
 libshouldbeinlibc/timefmt.c                   |    6 +-
 libshouldbeinlibc/ugids-argp.c                |    3 +-
 libshouldbeinlibc/ugids-auth.c                |    2 +-
 libshouldbeinlibc/ugids-imply.c               |    3 +-
 libshouldbeinlibc/ugids-merge.c               |    3 +-
 libshouldbeinlibc/ugids-subtract.c            |    4 +-
 libshouldbeinlibc/ugids-verify-auth.c         |    7 +-
 libshouldbeinlibc/ugids-verify.c              |    7 +-
 libshouldbeinlibc/ugids.c                     |    5 +-
 libshouldbeinlibc/ugids.h                     |    2 +
 libshouldbeinlibc/wire.c                      |   14 +-
 libshouldbeinlibc/wire.h                      |    1 -
 libstore/Makefile                             |   22 +-
 libstore/argp.c                               |    2 +-
 libstore/do-bunzip2.c                         | 1778 +------------------------
 libstore/do-gunzip.c                          |   80 ++
 libstore/enc.c                                |    4 +-
 libstore/gunzip.c                             |   27 +-
 libstore/gzip.h                               |  315 -----
 libstore/inflate.c                            |  954 -------------
 libstore/kids.c                               |    2 +-
 libstore/memobj.c                             |    1 +
 libstore/part.c                               |   11 +
 libstore/remap.c                              |    2 +-
 libstore/tailor.h                             |   14 -
 libstore/unzip.c                              |  199 ---
 libstore/unzipstore.c                         |    6 +-
 libstore/util.c                               |  257 +----
 libthreads/Makefile.GNU                       |    1 -
 libthreads/Makefile.GNU2                      |    1 -
 libthreads/alpha/lock.S                       |    1 -
 libthreads/alpha/thread.c                     |    2 +-
 libthreads/cancel-cond.c                      |   28 +-
 libthreads/cthreads.c                         |   12 +-
 libthreads/lockfile.c                         |    3 +
 libtreefs/Makefile                            |    1 -
 libtreefs/fsys.c                              |    4 +-
 libtreefs/s-file.c                            |    2 +
 libtreefs/s-fsys.c                            |    1 -
 libtreefs/treefs-hooks.h                      |    4 +-
 libtrivfs/Makefile                            |   12 +-
 libtrivfs/cntl-classes.c                      |   22 -
 libtrivfs/cntl-create.c                       |    1 -
 libtrivfs/demuxer.c                           |   55 +-
 libtrivfs/file-access.c                       |    1 +
 libtrivfs/file-chauthor.c                     |    1 +
 libtrivfs/file-chflags.c                      |    1 +
 libtrivfs/file-chg.c                          |    1 +
 libtrivfs/file-chmod.c                        |    1 +
 libtrivfs/file-chown.c                        |    1 +
 libtrivfs/file-exec.c                         |    1 +
 libtrivfs/file-get-children.c                 |   36 +
 libtrivfs/file-get-fs-options.c               |    1 +
 libtrivfs/file-get-source.c                   |   34 +
 libtrivfs/file-get-storage-info.c             |    1 +
 libtrivfs/file-get-trans.c                    |    1 +
 libtrivfs/file-get-transcntl.c                |    1 +
 libtrivfs/file-getcontrol.c                   |    1 +
 libtrivfs/file-getfh.c                        |    1 +
 libtrivfs/file-getlinknode.c                  |    1 +
 libtrivfs/file-lock.c                         |    1 +
 libtrivfs/file-reparent.c                     |    2 +
 libtrivfs/file-set-size.c                     |    1 +
 libtrivfs/file-set-trans.c                    |    1 +
 libtrivfs/file-statfs.c                       |    3 +-
 libtrivfs/file-sync.c                         |    1 +
 libtrivfs/file-syncfs.c                       |    1 +
 libtrivfs/file-utimes.c                       |    1 +
 libtrivfs/fsmutations.h                       |   33 -
 libtrivfs/fsys-forward.c                      |    1 +
 libtrivfs/fsys-get-children.c                 |   35 -
 libtrivfs/fsys-get-options.c                  |    1 +
 libtrivfs/fsys-get-source.c                   |   33 -
 libtrivfs/fsys-getroot.c                      |   25 +-
 libtrivfs/fsys-goaway.c                       |   25 +-
 libtrivfs/fsys-set-options.c                  |    1 +
 libtrivfs/fsys-stubs.c                        |   25 +-
 libtrivfs/fsys-syncfs.c                       |    1 +
 libtrivfs/get-source.c                        |    4 +-
 libtrivfs/io-async-icky.c                     |   25 +-
 libtrivfs/io-async.c                          |   25 +-
 libtrivfs/io-duplicate.c                      |   25 +-
 libtrivfs/io-identity.c                       |    1 +
 libtrivfs/io-map.c                            |   25 +-
 libtrivfs/io-modes-get.c                      |   25 +-
 libtrivfs/io-modes-off.c                      |   25 +-
 libtrivfs/io-modes-on.c                       |   25 +-
 libtrivfs/io-modes-set.c                      |   25 +-
 libtrivfs/io-owner-get.c                      |   25 +-
 libtrivfs/io-owner-mod.c                      |   25 +-
 libtrivfs/io-pathconf.c                       |    1 +
 libtrivfs/io-read.c                           |    1 +
 libtrivfs/io-readable.c                       |    1 +
 libtrivfs/io-reauthenticate.c                 |   33 +-
 libtrivfs/io-restrict-auth.c                  |   29 +-
 libtrivfs/io-revoke.c                         |    1 +
 libtrivfs/io-seek.c                           |    1 +
 libtrivfs/io-select.c                         |   25 +-
 libtrivfs/io-stat.c                           |   25 +-
 libtrivfs/io-stubs.c                          |   25 +-
 libtrivfs/io-version.c                        |    1 +
 libtrivfs/io-write.c                          |    1 +
 libtrivfs/mig-decls.h                         |  119 ++
 libtrivfs/mig-mutate.h                        |   35 +
 libtrivfs/migsupport.c                        |   86 --
 libtrivfs/open.c                              |    2 +-
 libtrivfs/protid-classes.c                    |   22 -
 libtrivfs/protid-clean.c                      |   35 +-
 libtrivfs/protid-dup.c                        |    5 +-
 libtrivfs/times.c                             |    4 -
 libtrivfs/trivfs.h                            |   67 +-
 mach-defpager/Makefile                        |    6 +-
 mach-defpager/default_pager.c                 |  710 ++++------
 mach-defpager/file_io.h                       |    6 +-
 mach-defpager/kalloc.c                        |   26 +-
 mach-defpager/main.c                          |    2 +-
 mach-defpager/mig-decls.h                     |   40 +
 mach-defpager/mig-mutate.h                    |   25 +
 mach-defpager/priv.h                          |  200 +++
 mach-defpager/queue.h                         |   10 +-
 mach-defpager/setup.c                         |   10 +-
 mach-defpager/wiring.c                        |    4 +-
 nfs/cache.c                                   |    1 -
 nfs/main.c                                    |   15 +-
 nfsd/Makefile                                 |    1 -
 nfsd/ops.c                                    |    2 +-
 nfsd/xdr.c                                    |    2 +-
 pfinet/Makefile                               |    7 +-
 pfinet/dummy.c                                |    4 -
 pfinet/ethernet.c                             |   70 +-
 pfinet/glue-include/asm/uaccess.h             |    2 +-
 pfinet/glue-include/linux/interrupt.h         |    2 +
 pfinet/iioctl-ops.c                           |   42 +-
 pfinet/io-ops.c                               |    5 +-
 pfinet/linux-src/arch/i386/lib/checksum.S     |    2 +-
 pfinet/linux-src/arch/i386/lib/old-checksum.c |    2 -
 pfinet/linux-src/arch/s390/lib/checksum.c     |    1 -
 pfinet/linux-src/arch/sparc64/lib/checksum.S  |    1 -
 pfinet/linux-src/include/asm-s390/checksum.h  |    2 -
 pfinet/linux-src/include/linux/busmouse.h     |    1 -
 pfinet/linux-src/include/linux/coda.h         |    3 +-
 pfinet/linux-src/include/linux/digiPCI.h      |    5 -
 pfinet/linux-src/include/linux/dmascc.h       |    1 -
 pfinet/linux-src/include/linux/efs_dir.h      |    1 -
 pfinet/linux-src/include/linux/efs_fs.h       |    1 -
 pfinet/linux-src/include/linux/efs_fs_i.h     |    1 -
 pfinet/linux-src/include/linux/efs_fs_sb.h    |    1 -
 pfinet/linux-src/include/linux/efs_vh.h       |    1 -
 pfinet/linux-src/include/linux/epca.h         |    1 -
 pfinet/linux-src/include/linux/hayesesp.h     |    1 -
 pfinet/linux-src/include/linux/ioctl.h        |    1 -
 pfinet/linux-src/include/linux/ipc.h          |    2 -
 pfinet/linux-src/include/linux/irda.h         |    4 -
 pfinet/linux-src/include/linux/isicom.h       |    1 -
 pfinet/linux-src/include/linux/kmod.h         |    1 -
 pfinet/linux-src/include/linux/locks.h        |    1 -
 pfinet/linux-src/include/linux/lp_intern.h    |    1 -
 pfinet/linux-src/include/linux/lp_mfc.h       |    1 -
 pfinet/linux-src/include/linux/ncp_fs_sb.h    |    1 -
 pfinet/linux-src/include/linux/ntfs_fs.h      |    1 -
 pfinet/linux-src/include/linux/nubus.h        |    1 -
 pfinet/linux-src/include/linux/route.h        |    1 -
 pfinet/linux-src/include/linux/sdla_fr.h      |    1 -
 pfinet/linux-src/include/linux/sdlapci.h      |    1 -
 pfinet/linux-src/include/linux/sdlasfm.h      |    1 -
 pfinet/linux-src/include/linux/serial_reg.h   |    1 -
 pfinet/linux-src/include/linux/sysv_fs.h      |    1 -
 pfinet/linux-src/include/linux/sysv_fs_i.h    |    1 -
 pfinet/linux-src/include/linux/sysv_fs_sb.h   |    1 -
 pfinet/linux-src/include/linux/tpqic02.h      |    1 -
 pfinet/linux-src/include/linux/tty_flip.h     |    7 -
 pfinet/linux-src/include/linux/vmalloc.h      |    1 -
 pfinet/linux-src/include/linux/wanpipe.h      |    1 -
 pfinet/linux-src/include/net/addrconf.h       |    2 +
 pfinet/linux-src/include/net/br.h             |    3 -
 pfinet/linux-src/include/net/inet_common.h    |    2 -
 pfinet/linux-src/include/net/ipv6.h           |    3 -
 pfinet/linux-src/include/net/llc.h            |    1 -
 pfinet/linux-src/include/net/llc_name.h       |    1 -
 pfinet/linux-src/include/net/llccall.h        |    1 -
 pfinet/linux-src/include/net/neighbour.h      |    2 -
 pfinet/linux-src/include/net/rarp.h           |    1 -
 pfinet/linux-src/include/net/scm.h            |    1 -
 pfinet/linux-src/net/core/dev_mcast.c         |    1 -
 pfinet/linux-src/net/ipv4/Config.in           |    1 -
 pfinet/linux-src/net/ipv4/af_inet.c           |    1 +
 pfinet/linux-src/net/ipv4/devinet.c           |    2 +
 pfinet/linux-src/net/ipv4/fib_frontend.c      |    1 -
 pfinet/linux-src/net/ipv4/fib_hash.c          |    2 +-
 pfinet/linux-src/net/ipv4/igmp.c              |    1 -
 pfinet/linux-src/net/ipv4/ip_input.c          |    1 -
 pfinet/linux-src/net/ipv4/ip_masq_quake.c     |    2 -
 pfinet/linux-src/net/ipv4/ip_output.c         |    1 -
 pfinet/linux-src/net/ipv4/tcp.c               |   59 +-
 pfinet/linux-src/net/ipv4/tcp_input.c         |    3 +
 pfinet/linux-src/net/ipv4/tcp_output.c        |    1 +
 pfinet/linux-src/net/ipv4/timer.c             |    1 -
 pfinet/linux-src/net/ipv4/utils.c             |    1 -
 pfinet/linux-src/net/ipv6/exthdrs.c           |    1 -
 pfinet/linux-src/net/ipv6/ip6_fib.c           |    2 -
 pfinet/loopback.c                             |    7 +
 pfinet/main.c                                 |  148 ++-
 pfinet/mig-decls.h                            |   67 +
 pfinet/mig-mutate.h                           |   44 +
 pfinet/misc.c                                 |   26 -
 pfinet/mutations.h                            |   38 -
 pfinet/options.c                              |  352 ++++--
 pfinet/pfinet.h                               |   16 +-
 pfinet/sched.c                                |    7 +-
 pfinet/socket-ops.c                           |    2 +-
 pfinet/socket.c                               |    2 +-
 pfinet/timer-emul.c                           |    2 +-
 pfinet/tunnel.c                               |    5 +-
 pflocal/connq.c                               |    2 +-
 pflocal/io.c                                  |   18 +-
 pflocal/mig-decls.h                           |   12 +
 pflocal/mig-mutate.h                          |    3 +
 pflocal/pflocal.c                             |   33 +-
 pflocal/sock.c                                |   20 +-
 pflocal/sock.h                                |   31 +-
 pflocal/socket.c                              |   17 +-
 pflocal/sserver.c                             |   25 +-
 proc/Makefile                                 |    8 +-
 proc/hash.c                                   |   35 +-
 proc/host.c                                   |   37 +-
 proc/info.c                                   |   24 +-
 proc/main.c                                   |  141 ++-
 proc/mgt.c                                    |  268 +++-
 proc/mig-decls.h                              |   77 ++
 proc/mig-mutate.h                             |   37 +
 proc/msg.c                                    |    4 +-
 proc/notify.c                                 |   50 +-
 proc/pgrp.c                                   |   32 +-
 proc/proc.h                                   |   28 +-
 proc/proc_exc.defs                            |   12 +-
 procfs/ChangeLog                              |    6 +
 procfs/Makefile                               |   31 +
 procfs/TODO                                   |   24 +
 procfs/dircat.c                               |  128 ++
 procfs/dircat.h                               |   29 +
 procfs/main.c                                 |  338 +++++
 procfs/main.h                                 |   25 +
 procfs/netfs.c                                |  461 +++++++
 procfs/process.c                              |  516 +++++++
 procfs/process.h                              |   27 +
 procfs/procfs.c                               |  219 +++
 procfs/procfs.h                               |   99 ++
 procfs/procfs_dir.c                           |  134 ++
 procfs/procfs_dir.h                           |   63 +
 procfs/proclist.c                             |   94 ++
 procfs/proclist.h                             |   23 +
 procfs/rootdir.c                              |  730 ++++++++++
 procfs/rootdir.h                              |   23 +
 random/Makefile                               |   30 +
 random/TODO                                   |   11 +
 random/gnupg-bithelp.h                        |   41 +
 random/gnupg-glue.h                           |   40 +
 random/gnupg-random.c                         |  810 +++++++++++
 random/gnupg-random.h                         |   47 +
 random/gnupg-rmd.h                            |   38 +
 random/gnupg-rmd160.c                         |  656 +++++++++
 random/random.c                               |  650 +++++++++
 random/random.h                               |   32 +
 release/README                                |    2 -
 release/SOURCES.0.2                           |    2 -
 release/dist-README                           |    3 -
 release/menu.lst                              |    1 -
 startup/Makefile                              |   35 +
 startup/startup.c                             | 1705 ++++++++++++++++++++++++
 storeio/dev.c                                 |    6 +-
 storeio/io.c                                  |    4 +
 storeio/pager.c                               |   28 +-
 storeio/storeio.c                             |    5 +-
 sutils/MAKEDEV.sh                             |    4 +-
 sutils/fstab.c                                |  109 +-
 term/Makefile                                 |    4 +
 term/devio.c                                  |    6 +-
 term/hurdio.c                                 |    7 +-
 term/main.c                                   |   24 +-
 term/mig-decls.h                              |   48 +
 term/mig-mutate.h                             |   36 +
 term/ptyio.c                                  |   54 +-
 term/term.h                                   |    5 +
 term/users.c                                  |  319 ++---
 tmpfs/dir.c                                   |   24 +-
 tmpfs/node.c                                  |  137 ++-
 tmpfs/pager-stubs.c                           |   24 +-
 tmpfs/tmpfs.c                                 |   41 +-
 tmpfs/tmpfs.h                                 |   20 +-
 trans/Makefile                                |   24 +-
 trans/crash.c                                 |   74 +-
 trans/fakeroot.c                              |  536 +++++---
 trans/fifo.c                                  |    5 +-
 trans/firmlink.c                              |    2 +
 trans/hello-mt.c                              |   30 +-
 trans/hello.c                                 |   23 +-
 trans/ifsock.c                                |   18 +-
 trans/magic.c                                 |   18 +-
 trans/mtab.c                                  |  279 +++--
 trans/new-fifo.c                              |   32 +-
 trans/null.c                                  |    5 +
 trans/password.c                              |   74 +-
 trans/proxy-defpager.c                        |   30 +-
 trans/streamio.c                              |   20 +-
 trans/symlink.c                               |   15 -
 usermux/node.c                                |    2 +-
 usermux/usermux.c                             |    5 +-
 utils/Makefile                                |   23 +-
 utils/fakeauth.c                              |   29 +-
 utils/fakeroot.sh                             |   10 +-
 utils/frobauth.c                              |    6 +-
 utils/gcore.c                                 |   24 +-
 utils/login.c                                 |    8 +-
 utils/mount.c                                 |   46 +-
 utils/msgids.c                                |  252 ++++
 utils/msgids.h                                |   33 +
 utils/portinfo.c                              |  126 ++-
 utils/remap.sh                                |    9 +-
 utils/rpcscan.c                               |  404 ++++++
 utils/rpctrace.c                              |  370 ++---
 utils/settrans.c                              |  129 ++-
 utils/storeinfo.c                             |    1 -
 utils/umount.c                                |   13 +-
 utils/vmstat.c                                |    3 +-
 utils/x.c                                     |    4 +-
 720 files changed, 19244 insertions(+), 12385 deletions(-)
 delete mode 100644 README.CVS
 create mode 100644 auth/auth.h
 delete mode 100644 auth/auth_mig.h
 delete mode 100644 auth/authmutations.h
 create mode 100644 auth/mig-decls.h
 create mode 100644 auth/mig-mutate.h
 delete mode 100644 console/priv.h
 copy daemons/{runsystem.sh => runsystem.hurd} (100%)
 create mode 100644 exec/mig-decls.h
 create mode 100755 gitlog-to-changelog
 delete mode 100644 init/stubs.c
 create mode 100644 libdiskfs/file-get-children.c
 create mode 100644 libdiskfs/file-get-source.c
 delete mode 100644 libdiskfs/fsys-get-children.c
 delete mode 100644 libdiskfs/fsys-get-source.c
 create mode 100644 libdiskfs/node-cache.c
 create mode 100644 libnetfs/file-get-children.c
 create mode 100644 libnetfs/file-get-source.c
 delete mode 100644 libnetfs/fsys-get-children.c
 delete mode 100644 libnetfs/fsys-get-source.c
 create mode 100644 libpager/mig-decls.h
 create mode 100644 libpager/mig-mutate.h
 delete mode 100644 libpager/no-senders.c
 delete mode 100644 libpager/notify-stubs.c
 create mode 100644 libpager/queue.h
 delete mode 100644 libpager/seqnos.c
 create mode 100644 libports/extern-inline.c
 create mode 100644 libports/mig-decls.h
 create mode 100644 libports/mig-mutate.h
 create mode 100644 libports/port-deref-deferred.c
 create mode 100644 libports/port-deref-deferred.h
 create mode 100644 libshouldbeinlibc/refcount.c
 create mode 100644 libshouldbeinlibc/refcount.h
 create mode 100644 libstore/do-gunzip.c
 delete mode 100644 libstore/gzip.h
 delete mode 100644 libstore/inflate.c
 delete mode 100644 libstore/tailor.h
 delete mode 100644 libstore/unzip.c
 delete mode 100644 libtrivfs/cntl-classes.c
 create mode 100644 libtrivfs/file-get-children.c
 create mode 100644 libtrivfs/file-get-source.c
 delete mode 100644 libtrivfs/fsmutations.h
 delete mode 100644 libtrivfs/fsys-get-children.c
 delete mode 100644 libtrivfs/fsys-get-source.c
 create mode 100644 libtrivfs/mig-decls.h
 create mode 100644 libtrivfs/mig-mutate.h
 delete mode 100644 libtrivfs/migsupport.c
 delete mode 100644 libtrivfs/protid-classes.c
 create mode 100644 mach-defpager/mig-decls.h
 create mode 100644 mach-defpager/mig-mutate.h
 create mode 100644 mach-defpager/priv.h
 create mode 100644 pfinet/mig-decls.h
 create mode 100644 pfinet/mig-mutate.h
 delete mode 100644 pfinet/mutations.h
 create mode 100644 proc/mig-decls.h
 create mode 100644 proc/mig-mutate.h
 create mode 100644 procfs/ChangeLog
 create mode 100644 procfs/Makefile
 create mode 100644 procfs/TODO
 create mode 100644 procfs/dircat.c
 create mode 100644 procfs/dircat.h
 create mode 100644 procfs/main.c
 create mode 100644 procfs/main.h
 create mode 100644 procfs/netfs.c
 create mode 100644 procfs/process.c
 create mode 100644 procfs/process.h
 create mode 100644 procfs/procfs.c
 create mode 100644 procfs/procfs.h
 create mode 100644 procfs/procfs_dir.c
 create mode 100644 procfs/procfs_dir.h
 create mode 100644 procfs/proclist.c
 create mode 100644 procfs/proclist.h
 create mode 100644 procfs/rootdir.c
 create mode 100644 procfs/rootdir.h
 create mode 100644 random/Makefile
 create mode 100644 random/TODO
 create mode 100644 random/gnupg-bithelp.h
 create mode 100644 random/gnupg-glue.h
 create mode 100644 random/gnupg-random.c
 create mode 100644 random/gnupg-random.h
 create mode 100644 random/gnupg-rmd.h
 create mode 100644 random/gnupg-rmd160.c
 create mode 100644 random/random.c
 create mode 100644 random/random.h
 create mode 100644 startup/Makefile
 create mode 100644 startup/startup.c
 create mode 100644 term/mig-decls.h
 create mode 100644 term/mig-mutate.h
 create mode 100644 utils/msgids.c
 create mode 100644 utils/msgids.h
 create mode 100644 utils/rpcscan.c


hooks/post-receive
-- 
the great next stuff



reply via email to

[Prev in Thread] Current Thread [Next in Thread]