lkml.org 
[lkml]   [1996]   [Mar]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: 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);
    -------------------------------------------------------------


    \
     
     \ /
      Last update: 2005-03-22 13:36    [W:3.052 / U:1.276 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site