From: Jeff D. <jd...@ka...> - 2001-07-31 01:41:00
|
I did a couple days ago (I put 2.4 on my laptop a couple weeks ago and I'm amazed that I didn't see it before). Basically ls doesn't work. It shows no files. I found two bugs. One was that hostfs_readdir was filling in the directory inode as the inode for each file. That was easily fixed. The other bug was that stat_file was always returning 0 as the inode. The reason is that there are two inode fields in a struct stat64. st_ino contains 0, which is where stat_file was getting the inode from. __st_ino contains the actual inode. __st_ino lives in the same location as st_ino on 2.2. st_ino got moved to the end of the structure. The problem is that __st_ino doesn't exist on 2.2. I can build a hostfs that works on both 2.4 and 2.2 by building on 2.4 and pulling out __st_ino. This relies on the fact that __st_ino is in the same place as st_ino on 2.2. I'm not particularly happy about this, since it makes it impossible to build on 2.2 and get a hostfs that works on 2.4. Does anyone have any idea why the libc people did this and whether there's anything better I can do (like maybe a magic cpp symbol that will make things right (although I saw no sign of such a symbol in the headers))? Jeff |
From: Harald W. <la...@gn...> - 2001-08-01 18:11:48
|
On Mon, Jul 30, 2001 at 09:56:04PM -0500, Jeff Dike wrote: > I did a couple days ago (I put 2.4 on my laptop a couple weeks ago and I'm > amazed that I didn't see it before). Basically ls doesn't work. It shows no I am 100% sure that it _did_ work. I never used uml on a 2.2.x host, and I'm sure that I used hostfs around 2.4.2 - 2.4.4 time. > Jeff -- Live long and prosper - Harald Welte / la...@gn... http://www.gnumonks.org ============================================================================ GCS/E/IT d- s-: a-- C+++ UL++++$ P+++ L++++$ E--- W- N++ o? K- w--- O- M- V-- PS+ PE-- Y+ PGP++ t++ 5-- !X !R tv-- b+++ DI? !D G+ e* h+ r% y+(*) |