Received: (from majordomo@localhost) by oss.sgi.com (8.11.2/8.11.3) id g08GaKG10414 for linux-xfs-outgoing; Tue, 8 Jan 2002 08:36:20 -0800 Received: from ADSL-Bergs.RZ.RWTH-Aachen.DE (adsl-bergs.rz.RWTH-Aachen.DE [137.226.80.218]) by oss.sgi.com (8.11.2/8.11.3) with SMTP id g08GZ2g10386 for ; Tue, 8 Jan 2002 08:35:03 -0800 Received: from [192.168.1.2] (helo=ralf) by ADSL-Bergs.RZ.RWTH-Aachen.DE with smtp (Exim 3.12 #1) id 16NyH9-0003tG-00; Tue, 08 Jan 2002 16:34:55 +0100 From: "Ralf G. R. Bergs" To: "Steve Lord" Cc: "Linux XFS" Date: Tue, 08 Jan 2002 16:34:54 +0100 Reply-To: "Ralf G. R. Bergs" X-Mailer: PMMail 2000 Professional (2.20.2380) For Windows 2000 (5.0.2195;2) In-Reply-To: <1010503190.25290.12.camel@jen.americas.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Subject: Re: "No such file or directory" (still) (was Re: file corruption during emacs build on XFS logical volume Message-Id: Sender: owner-linux-xfs@oss.sgi.com Precedence: bulk Status: O Content-Length: 18248 Lines: 743 On Tue, 08 Jan 2002 09:19:50 -0600, Steve Lord wrote: [...] >I think I am starting to get the picture here. The blocks we are looking You make a happy man out of me... :-) >at here are hash values used to lookup the individual blocks containing >the name/inode pairs. A directory search generates a hash from the name >and then walks down to the leaf block of the btree which contains it, Up to here I can still (mostly) follow you... >from here we get an address - which I think is in 8 byte chunks into the >start of the directory. > >This output: > >dir 1426370585 block 8388614 extra leaf entry 62b7eea7 2a89 >dir ino 1426370585 missing leaf entry for 62bdaea7/2a89 > >Reports that there is a leaf entry 62b7eea7 which has no inode >in the directory, and there is an inode with no hash value. They I see. >are both at offset 0x2a89. If we multiply this by 8 we get 87112 >decimal which should be in block 21 of the directory. If you go >back to the inode and do > > dblock 21 > p > >what do you get, and is your missing name in the output here? xfs_db: dblock 21 xfs_db: p dhdr.magic = 0x58443244 dhdr.bestfree[0].offset = 0 dhdr.bestfree[0].length = 0 dhdr.bestfree[1].offset = 0 dhdr.bestfree[1].length = 0 dhdr.bestfree[2].offset = 0 dhdr.bestfree[2].length = 0 du[0].inumber = 1426388650 du[0].namelen = 12 du[0].name = "069701IM.drw" du[0].tag = 0x10 du[1].inumber = 1426388651 du[1].namelen = 12 du[1].name = "069702IM.drw" du[1].tag = 0x28 du[2].inumber = 1426388652 du[2].namelen = 12 du[2].name = "069703IM.drw" du[2].tag = 0x40 du[3].inumber = 1426388653 du[3].namelen = 12 du[3].name = "069704IM.drw" du[3].tag = 0x58 du[4].inumber = 1426388654 du[4].namelen = 12 du[4].name = "069705IM.drw" du[4].tag = 0x70 du[5].inumber = 1426388655 du[5].namelen = 12 du[5].name = "069706IM.drw" du[5].tag = 0x88 du[6].inumber = 1426388656 du[6].namelen = 12 du[6].name = "069707IM.drw" du[6].tag = 0xa0 du[7].inumber = 1426388657 du[7].namelen = 12 du[7].name = "069708IM.drw" du[7].tag = 0xb8 du[8].inumber = 1426388658 du[8].namelen = 12 du[8].name = "069709IM.drw" du[8].tag = 0xd0 du[9].inumber = 1426388659 du[9].namelen = 12 du[9].name = "069710IM.drw" du[9].tag = 0xe8 du[10].inumber = 1426388660 du[10].namelen = 12 du[10].name = "069711IM.drw" du[10].tag = 0x100 du[11].inumber = 1426388661 du[11].namelen = 12 du[11].name = "069712IM.drw" du[11].tag = 0x118 du[12].inumber = 1426388662 du[12].namelen = 12 du[12].name = "069713IM.drw" du[12].tag = 0x130 du[13].inumber = 1426388663 du[13].namelen = 12 du[13].name = "069714IM.drw" du[13].tag = 0x148 du[14].inumber = 1426388664 du[14].namelen = 12 du[14].name = "069715IM.drw" du[14].tag = 0x160 du[15].inumber = 1426388665 du[15].namelen = 12 du[15].name = "069716IM.drw" du[15].tag = 0x178 du[16].inumber = 1426388666 du[16].namelen = 12 du[16].name = "069717IM.drw" du[16].tag = 0x190 du[17].inumber = 1426388667 du[17].namelen = 12 du[17].name = "069718IM.drw" du[17].tag = 0x1a8 du[18].inumber = 1426388668 du[18].namelen = 12 du[18].name = "069719IM.drw" du[18].tag = 0x1c0 du[19].inumber = 1426388669 du[19].namelen = 12 du[19].name = "069720IM.drw" du[19].tag = 0x1d8 du[20].inumber = 1426388670 du[20].namelen = 12 du[20].name = "069721IM.drw" du[20].tag = 0x1f0 du[21].inumber = 1426388671 du[21].namelen = 12 du[21].name = "069722IM.drw" du[21].tag = 0x208 du[22].inumber = 1426388704 du[22].namelen = 12 du[22].name = "069723IM.drw" du[22].tag = 0x220 du[23].inumber = 1426388705 du[23].namelen = 12 du[23].name = "069724IM.drw" du[23].tag = 0x238 du[24].inumber = 1426388706 du[24].namelen = 12 du[24].name = "069725IM.drw" du[24].tag = 0x250 du[25].inumber = 1426388707 du[25].namelen = 12 du[25].name = "069726IM.drw" du[25].tag = 0x268 du[26].inumber = 1426388708 du[26].namelen = 12 du[26].name = "069727IM.drw" du[26].tag = 0x280 du[27].inumber = 1426388709 du[27].namelen = 12 du[27].name = "069728IM.drw" du[27].tag = 0x298 du[28].inumber = 1426388710 du[28].namelen = 12 du[28].name = "069729IM.drw" du[28].tag = 0x2b0 du[29].inumber = 1426388711 du[29].namelen = 12 du[29].name = "069730IM.drw" du[29].tag = 0x2c8 du[30].inumber = 1426388712 du[30].namelen = 12 du[30].name = "069731IM.drw" du[30].tag = 0x2e0 du[31].inumber = 1426388713 du[31].namelen = 12 du[31].name = "069732IM.drw" du[31].tag = 0x2f8 du[32].inumber = 1426388714 du[32].namelen = 12 du[32].name = "069733IM.drw" du[32].tag = 0x310 du[33].inumber = 1426388715 du[33].namelen = 12 du[33].name = "069734IM.drw" du[33].tag = 0x328 du[34].inumber = 1426388716 du[34].namelen = 12 du[34].name = "069735IM.drw" du[34].tag = 0x340 du[35].inumber = 1426388717 du[35].namelen = 12 du[35].name = "069736IM.drw" du[35].tag = 0x358 du[36].inumber = 1426388718 du[36].namelen = 12 du[36].name = "069737IM.drw" du[36].tag = 0x370 du[37].inumber = 1426388719 du[37].namelen = 12 du[37].name = "069738IM.drw" du[37].tag = 0x388 du[38].inumber = 1426388720 du[38].namelen = 12 du[38].name = "069739IM.drw" du[38].tag = 0x3a0 du[39].inumber = 1426388721 du[39].namelen = 12 du[39].name = "069740IM.drw" du[39].tag = 0x3b8 du[40].inumber = 1426388722 du[40].namelen = 12 du[40].name = "069741IM.drw" du[40].tag = 0x3d0 du[41].inumber = 1426388723 du[41].namelen = 12 du[41].name = "069742IM.drw" du[41].tag = 0x3e8 du[42].inumber = 1426388724 du[42].namelen = 12 du[42].name = "069743IM.drw" du[42].tag = 0x400 du[43].inumber = 1426388725 du[43].namelen = 12 du[43].name = "069744IM.drw" du[43].tag = 0x418 du[44].inumber = 1426388726 du[44].namelen = 12 du[44].name = "069745IM.drw" du[44].tag = 0x430 du[45].inumber = 1426388727 du[45].namelen = 12 du[45].name = "069746IM.Mrw" du[45].tag = 0x448 du[46].inumber = 1426388728 du[46].namelen = 12 du[46].name = "069747IM.drw" du[46].tag = 0x460 du[47].inumber = 1426388729 du[47].namelen = 12 du[47].name = "069748IM.drw" du[47].tag = 0x478 du[48].inumber = 1426388730 du[48].namelen = 12 du[48].name = "069749IM.drw" du[48].tag = 0x490 du[49].inumber = 1426388731 du[49].namelen = 12 du[49].name = "069750IM.drw" du[49].tag = 0x4a8 du[50].inumber = 1426388732 du[50].namelen = 12 du[50].name = "069751IM.drw" du[50].tag = 0x4c0 du[51].inumber = 1426388733 du[51].namelen = 12 du[51].name = "069752IM.drw" du[51].tag = 0x4d8 du[52].inumber = 1426388734 du[52].namelen = 12 du[52].name = "069753IM.drw" du[52].tag = 0x4f0 du[53].inumber = 1426388735 du[53].namelen = 12 du[53].name = "069754IM.drw" du[53].tag = 0x508 du[54].inumber = 1426388736 du[54].namelen = 12 du[54].name = "069755IM.drw" du[54].tag = 0x520 du[55].inumber = 1426388737 du[55].namelen = 12 du[55].name = "069756IM.drw" du[55].tag = 0x538 du[56].inumber = 1426388738 du[56].namelen = 12 du[56].name = "069757IM.drw" du[56].tag = 0x550 du[57].inumber = 1426388739 du[57].namelen = 12 du[57].name = "069758IM.drw" du[57].tag = 0x568 du[58].inumber = 1426388740 du[58].namelen = 12 du[58].name = "069759IM.drw" du[58].tag = 0x580 du[59].inumber = 1426388741 du[59].namelen = 12 du[59].name = "069760IM.drw" du[59].tag = 0x598 du[60].inumber = 1426388742 du[60].namelen = 12 du[60].name = "069761IM.drw" du[60].tag = 0x5b0 du[61].inumber = 1426388743 du[61].namelen = 12 du[61].name = "069762IM.drw" du[61].tag = 0x5c8 du[62].inumber = 1426388744 du[62].namelen = 12 du[62].name = "069763IM.drw" du[62].tag = 0x5e0 du[63].inumber = 1426388745 du[63].namelen = 12 du[63].name = "069764IM.drw" du[63].tag = 0x5f8 du[64].inumber = 1426388746 du[64].namelen = 12 du[64].name = "069765IM.drw" du[64].tag = 0x610 du[65].inumber = 1426388747 du[65].namelen = 12 du[65].name = "069766IM.drw" du[65].tag = 0x628 du[66].inumber = 1426388748 du[66].namelen = 12 du[66].name = "069767IM.drw" du[66].tag = 0x640 du[67].inumber = 1426388749 du[67].namelen = 12 du[67].name = "069768IM.drw" du[67].tag = 0x658 du[68].inumber = 1426388750 du[68].namelen = 12 du[68].name = "069769IM.drw" du[68].tag = 0x670 du[69].inumber = 1426388751 du[69].namelen = 12 du[69].name = "069770IM.drw" du[69].tag = 0x688 du[70].inumber = 1426388752 du[70].namelen = 12 du[70].name = "069771IM.drw" du[70].tag = 0x6a0 du[71].inumber = 1426388753 du[71].namelen = 12 du[71].name = "069772IM.drw" du[71].tag = 0x6b8 du[72].inumber = 1426388754 du[72].namelen = 12 du[72].name = "069773IM.drw" du[72].tag = 0x6d0 du[73].inumber = 1426388755 du[73].namelen = 12 du[73].name = "069774IM.drw" du[73].tag = 0x6e8 du[74].inumber = 1426388756 du[74].namelen = 12 du[74].name = "069775IM.drw" du[74].tag = 0x700 du[75].inumber = 1426388757 du[75].namelen = 12 du[75].name = "069776IM.drw" du[75].tag = 0x718 du[76].inumber = 1426388758 du[76].namelen = 12 du[76].name = "069777IM.drw" du[76].tag = 0x730 du[77].inumber = 1426388759 du[77].namelen = 12 du[77].name = "069778IM.drw" du[77].tag = 0x748 du[78].inumber = 1426388760 du[78].namelen = 12 du[78].name = "069779IM.drw" du[78].tag = 0x760 du[79].inumber = 1426388761 du[79].namelen = 12 du[79].name = "069780IM.drw" du[79].tag = 0x778 du[80].inumber = 1426388762 du[80].namelen = 12 du[80].name = "069781IM.drw" du[80].tag = 0x790 du[81].inumber = 1426388763 du[81].namelen = 12 du[81].name = "069782IM.drw" du[81].tag = 0x7a8 du[82].inumber = 1426388764 du[82].namelen = 12 du[82].name = "069783IM.drw" du[82].tag = 0x7c0 du[83].inumber = 1426388765 du[83].namelen = 12 du[83].name = "069784IM.drw" du[83].tag = 0x7d8 du[84].inumber = 1426388766 du[84].namelen = 12 du[84].name = "069785IM.drw" du[84].tag = 0x7f0 du[85].inumber = 1426388767 du[85].namelen = 12 du[85].name = "069786IM.drw" du[85].tag = 0x808 du[86].inumber = 1426388768 du[86].namelen = 12 du[86].name = "069787IM.drw" du[86].tag = 0x820 du[87].inumber = 1426388769 du[87].namelen = 12 du[87].name = "069788IM.drw" du[87].tag = 0x838 du[88].inumber = 1426388770 du[88].namelen = 12 du[88].name = "069789IM.drw" du[88].tag = 0x850 du[89].inumber = 1426388771 du[89].namelen = 12 du[89].name = "069790IM.drw" du[89].tag = 0x868 du[90].inumber = 1426388772 du[90].namelen = 12 du[90].name = "069791IM.drw" du[90].tag = 0x880 du[91].inumber = 1426388773 du[91].namelen = 12 du[91].name = "069792IM.drw" du[91].tag = 0x898 du[92].inumber = 1426388774 du[92].namelen = 12 du[92].name = "069793IM.drw" du[92].tag = 0x8b0 du[93].inumber = 1426388775 du[93].namelen = 12 du[93].name = "069794IM.drw" du[93].tag = 0x8c8 du[94].inumber = 1426388776 du[94].namelen = 12 du[94].name = "069795IM.drw" du[94].tag = 0x8e0 du[95].inumber = 1426388777 du[95].namelen = 12 du[95].name = "069796IM.drw" du[95].tag = 0x8f8 du[96].inumber = 1426388778 du[96].namelen = 12 du[96].name = "069797IM.drw" du[96].tag = 0x910 du[97].inumber = 1426388779 du[97].namelen = 12 du[97].name = "069798IM.drw" du[97].tag = 0x928 du[98].inumber = 1426388780 du[98].namelen = 12 du[98].name = "069799IM.drw" du[98].tag = 0x940 du[99].inumber = 1426388781 du[99].namelen = 12 du[99].name = "069800IM.drw" du[99].tag = 0x958 du[100].inumber = 1426388782 du[100].namelen = 12 du[100].name = "069801IM.drw" du[100].tag = 0x970 du[101].inumber = 1426388783 du[101].namelen = 12 du[101].name = "069802IM.drw" du[101].tag = 0x988 du[102].inumber = 1426388784 du[102].namelen = 12 du[102].name = "069803IM.drw" du[102].tag = 0x9a0 du[103].inumber = 1426388785 du[103].namelen = 12 du[103].name = "069804IM.drw" du[103].tag = 0x9b8 du[104].inumber = 1426388786 du[104].namelen = 12 du[104].name = "069805IM.drw" du[104].tag = 0x9d0 du[105].inumber = 1426388787 du[105].namelen = 12 du[105].name = "069806IM.drw" du[105].tag = 0x9e8 du[106].inumber = 1426388788 du[106].namelen = 12 du[106].name = "069807IM.drw" du[106].tag = 0xa00 du[107].inumber = 1426388789 du[107].namelen = 12 du[107].name = "069808IM.drw" du[107].tag = 0xa18 du[108].inumber = 1426388790 du[108].namelen = 12 du[108].name = "069809IM.drw" du[108].tag = 0xa30 du[109].inumber = 1426388791 du[109].namelen = 12 du[109].name = "069810IM.drw" du[109].tag = 0xa48 du[110].inumber = 1426388792 du[110].namelen = 12 du[110].name = "069811IM.drw" du[110].tag = 0xa60 du[111].inumber = 1426388793 du[111].namelen = 12 du[111].name = "069812IM.drw" du[111].tag = 0xa78 du[112].inumber = 1426388794 du[112].namelen = 12 du[112].name = "069813IM.drw" du[112].tag = 0xa90 du[113].inumber = 1426388795 du[113].namelen = 12 du[113].name = "069814IM.drw" du[113].tag = 0xaa8 du[114].inumber = 1426388796 du[114].namelen = 12 du[114].name = "069815IM.drw" du[114].tag = 0xac0 du[115].inumber = 1426388797 du[115].namelen = 12 du[115].name = "069816IM.drw" du[115].tag = 0xad8 du[116].inumber = 1426388798 du[116].namelen = 12 du[116].name = "069817IM.drw" du[116].tag = 0xaf0 du[117].inumber = 1426388799 du[117].namelen = 12 du[117].name = "069818IM.drw" du[117].tag = 0xb08 du[118].inumber = 1426388800 du[118].namelen = 12 du[118].name = "069819IM.drw" du[118].tag = 0xb20 du[119].inumber = 1426388801 du[119].namelen = 12 du[119].name = "069820IM.drw" du[119].tag = 0xb38 du[120].inumber = 1426388802 du[120].namelen = 12 du[120].name = "069821IM.drw" du[120].tag = 0xb50 du[121].inumber = 1426388803 du[121].namelen = 12 du[121].name = "069822IM.drw" du[121].tag = 0xb68 du[122].inumber = 1426388804 du[122].namelen = 12 du[122].name = "069823IM.drw" du[122].tag = 0xb80 du[123].inumber = 1426388805 du[123].namelen = 12 du[123].name = "069824IM.drw" du[123].tag = 0xb98 du[124].inumber = 1426388806 du[124].namelen = 12 du[124].name = "069825IM.drw" du[124].tag = 0xbb0 du[125].inumber = 1426388807 du[125].namelen = 12 du[125].name = "069826IM.drw" du[125].tag = 0xbc8 du[126].inumber = 1426388808 du[126].namelen = 12 du[126].name = "069827IM.drw" du[126].tag = 0xbe0 du[127].inumber = 1426388809 du[127].namelen = 12 du[127].name = "069828IM.drw" du[127].tag = 0xbf8 du[128].inumber = 1426388810 du[128].namelen = 12 du[128].name = "069829IM.drw" du[128].tag = 0xc10 du[129].inumber = 1426388811 du[129].namelen = 12 du[129].name = "069830IM.drw" du[129].tag = 0xc28 du[130].inumber = 1426388812 du[130].namelen = 12 du[130].name = "069831IM.drw" du[130].tag = 0xc40 du[131].inumber = 1426388813 du[131].namelen = 12 du[131].name = "069832IM.drw" du[131].tag = 0xc58 du[132].inumber = 1426388814 du[132].namelen = 12 du[132].name = "069833IM.drw" du[132].tag = 0xc70 du[133].inumber = 1426388815 du[133].namelen = 12 du[133].name = "069834IM.drw" du[133].tag = 0xc88 du[134].inumber = 1426388816 du[134].namelen = 12 du[134].name = "069835IM.drw" du[134].tag = 0xca0 du[135].inumber = 1426388817 du[135].namelen = 12 du[135].name = "069836IM.drw" du[135].tag = 0xcb8 du[136].inumber = 1426388818 du[136].namelen = 12 du[136].name = "069837IM.drw" du[136].tag = 0xcd0 du[137].inumber = 1426388819 du[137].namelen = 12 du[137].name = "069838IM.drw" du[137].tag = 0xce8 du[138].inumber = 1426388820 du[138].namelen = 12 du[138].name = "069839IM.drw" du[138].tag = 0xd00 du[139].inumber = 1426388821 du[139].namelen = 12 du[139].name = "069840IM.drw" du[139].tag = 0xd18 du[140].inumber = 1426388822 du[140].namelen = 12 du[140].name = "069841IM.drw" du[140].tag = 0xd30 du[141].inumber = 1426388823 du[141].namelen = 12 du[141].name = "069842IM.drw" du[141].tag = 0xd48 du[142].inumber = 1426388824 du[142].namelen = 12 du[142].name = "069843IM.drw" du[142].tag = 0xd60 du[143].inumber = 1426388825 du[143].namelen = 12 du[143].name = "069844IM.drw" du[143].tag = 0xd78 du[144].inumber = 1426388826 du[144].namelen = 12 du[144].name = "069845IM.drw" du[144].tag = 0xd90 du[145].inumber = 1426388827 du[145].namelen = 12 du[145].name = "069846IM.drw" du[145].tag = 0xda8 du[146].inumber = 1426388828 du[146].namelen = 12 du[146].name = "069847IM.drw" du[146].tag = 0xdc0 du[147].inumber = 1426388829 du[147].namelen = 12 du[147].name = "069848IM.drw" du[147].tag = 0xdd8 du[148].inumber = 1426388830 du[148].namelen = 12 du[148].name = "069849IM.drw" du[148].tag = 0xdf0 du[149].inumber = 1426388831 du[149].namelen = 12 du[149].name = "069850IM.drw" du[149].tag = 0xe08 du[150].inumber = 1426388832 du[150].namelen = 12 du[150].name = "069851IM.drw" du[150].tag = 0xe20 du[151].inumber = 1426388833 du[151].namelen = 12 du[151].name = "069852IM.drw" du[151].tag = 0xe38 du[152].inumber = 1426388834 du[152].namelen = 12 du[152].name = "069853IM.drw" du[152].tag = 0xe50 du[153].inumber = 1426388835 du[153].namelen = 12 du[153].name = "069854IM.drw" du[153].tag = 0xe68 du[154].inumber = 1426388836 du[154].namelen = 12 du[154].name = "069855IM.drw" du[154].tag = 0xe80 du[155].inumber = 1426388837 du[155].namelen = 12 du[155].name = "069856IM.drw" du[155].tag = 0xe98 du[156].inumber = 1426388838 du[156].namelen = 12 du[156].name = "069857IM.drw" du[156].tag = 0xeb0 du[157].inumber = 1426388839 du[157].namelen = 12 du[157].name = "069858IM.drw" du[157].tag = 0xec8 du[158].inumber = 1426388840 du[158].namelen = 12 du[158].name = "069859IM.drw" du[158].tag = 0xee0 du[159].inumber = 1426388841 du[159].namelen = 12 du[159].name = "069860IM.drw" du[159].tag = 0xef8 du[160].inumber = 1426388842 du[160].namelen = 12 du[160].name = "069861IM.drw" du[160].tag = 0xf10 du[161].inumber = 1426388843 du[161].namelen = 12 du[161].name = "069862IM.drw" du[161].tag = 0xf28 du[162].inumber = 1426388844 du[162].namelen = 12 du[162].name = "069863IM.drw" du[162].tag = 0xf40 du[163].inumber = 1426388845 du[163].namelen = 12 du[163].name = "069864IM.drw" du[163].tag = 0xf58 du[164].inumber = 1426388846 du[164].namelen = 12 du[164].name = "069865IM.drw" du[164].tag = 0xf70 du[165].inumber = 1426388847 du[165].namelen = 12 du[165].name = "069866IM.drw" du[165].tag = 0xf88 du[166].inumber = 1426388848 du[166].namelen = 12 du[166].name = "069867IM.drw" du[166].tag = 0xfa0 du[167].inumber = 1426388849 du[167].namelen = 12 du[167].name = "069868IM.drw" du[167].tag = 0xfb8 du[168].inumber = 1426388850 du[168].namelen = 12 du[168].name = "069869IM.drw" du[168].tag = 0xfd0 du[169].inumber = 1426388851 du[169].namelen = 12 du[169].name = "069870IM.drw" du[169].tag = 0xfe8 Bingo, the missing name is du[45].name = "069746IM.Mrw" This starts to be great fun!! :-) Anything else I should do? Thanks, Ralf -- Verkaufe Original-BMW-Raeder: L I N U X .~. http://adsl-bergs.rz.rwth-aachen.de/~rabe The Choice /V\ of a GNU /( )\ Generation ^^-^^