Messages in this thread Patch in this message | | | Date | Mon, 18 Mar 1996 16:21:17 +0100 (MET) | From | Gerd Knorr <> | Subject | Re: nfsroot anyone? |
| |
On Sat, 16 Mar 1996, Linus Torvalds wrote:
> > > On 16 Mar 1996, Markus Gutschke wrote: > > > > In article <199603140649.BAA01162@huahaga.rutgers.edu> "David S. Miller" > <davem@caip.rutgers.edu> writes: > > > Is anyone actively using 1.3.73 with nfsroot on any machines? If so, > > > are you seeing any problems with this release? Thanks. > > > > I just tried to load 1.3.74 via nfsroot. I get lots and lots of > > "kill_fasync: bad magic number in fasync_struct!" messages scrolling > > by. > the fasync_struct pointer passed to kill_fasync is invalid. I get an oops in kill_fasync (occures while kill_fasync tries to check the magic).
> It looks like nfsroot does some _really_ bad things, and it needs to be > cleaned up to work (David tells me it uses the _same_ inode for network > connecting as for the actual NFS root inode -- I just hope he mis-read > the code, but if he didn't that certainly needs to be cleaned up). > Seems it really uses one inode for both. In 1.3.73 pipeinfo has been added to nfs_inode_info, this moves the location of the nfs-handle in the inode struct, and toggles this bug. Thats why the bad magic and the kernel oops.
I moved the pipeinfo-element from the begin to the end of nfs_inode_info, and now nfsroot works, I can boot my small box over net with 1.3.75. But (as I expected) this breaks NFS-fifos, "screen" oopses now.
> There are some NFS-root changes in 1.3.75, but I haven't tested them and > they don't look like they'd fix this particular problem. Could somebody > who knows the nfsroot code take a look? > The kernel command line handling has been rewritten and bootp added. I could'nt boot my box without a small patch: the etherboot package passes "0.0.0.0" as gateway adress if there is no gateway. But the new code complains that the gateway is'nt on the local net. Here is a patch to fix this (adds an extra check):
Gerd
------------------------------------------------------------- --- fs/nfs/nfsroot.c.1.3.75 Mon Mar 18 09:55:01 1996 +++ fs/nfs/nfsroot.c Mon Mar 18 16:00:29 1996 @@ -1136,7 +1136,10 @@ server.sin_addr.s_addr = in_aton(ip); break; case 2: - gateway.sin_addr.s_addr = in_aton(ip); + if (0 == strcmp(ip,"0.0.0.0")) + gateway.sin_addr.s_addr = INADDR_NONE; + else + gateway.sin_addr.s_addr = in_aton(ip); break; case 3: netmask.sin_addr.s_addr = in_aton(ip); -------------------------------------------------------------
| |