Re: [PATCH] allow ifup bring up network mannually even without netroot

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

 



On Thu, 2011-12-29 at 11:13 +0800, Dave Young wrote:
> sometimes we need bring up network even without netroot
> 
> Here implement this by adding one param to ifup script, user can use:
> /sbin/ifup $netif -m; to bring up eth0, note currently ifup will see
> anything in param $2 as same.
> 
> `ifup eth0 -m` will create /tmp/net.eth0.mannual stamp file,
> later dhclient-script can check this and pass $2 to netroot,
> then netroot script will bring eth0 up

'Manual' is misspelled throughout the patch, and your commit message is
a bit broken -- you say '/sbin/ifup $netif -m' will bring up eth0. You
put the command line that actually would in the next paragraph.

What's the use case? I'm sure there probably is one, but it's better to
be specific in the commit message when giving an example. I'm assuming
this is for your kdump work?


> --- dracut.orig/modules.d/40network/dhclient-script
> +++ dracut/modules.d/40network/dhclient-script
> @@ -74,7 +74,12 @@ case $reason in
>              echo "$line"
>          done >/tmp/dhclient.$netif.dhcpopts
>          echo online > /sys/class/net/$netif/uevent
> -        initqueue --onetime --name netroot-$netif netroot $netif
> +        if [ -e /tmp/net.$netif.mannual ]; then
> +            /sbin/netroot $netif -m
> +            rm -f /tmp/net.$netif.mannual
> +        else
> +            initqueue --onetime --name netroot-$netif netroot $netif
> +        fi

And if we want to use kdump with NFS root?

I think it would be cleaner to add either conditionally add netroot to
the initqueue only when there is actually a netroot used, or
make /sbin/netroot not care... it currently exits with a nonzero value
if /tmp/root.info isn't there, or $netroot is empty. I assume that
causes problems elsewhere -- I haven't kept up with dracut for a while
-- but perhaps not and it is safe to just always call it.

> --- dracut.orig/modules.d/40network/ifup
> +++ dracut/modules.d/40network/ifup

> @@ -50,7 +52,11 @@ do_ipv6auto() {
>  
> 
>      echo online > /sys/class/net/$netif/uevent
> -    initqueue --onetime --name netroot-$netif netroot $netif
> +    if [ -z "$2" ]; then
> +        initqueue --onetime --name netroot-$netif netroot $netif
> +    else
> +        /sbin/netroot $netif -m
> +    fi
>  }

Same comment here, with the added bonus that "$2" will reference the
function's arguments, not the scripts, so you'll always do the initqueue
call. 

Why are you wanting to run netroot immediately if you aren't using a
network root? 

If it's just to copy the configuration over when you have a kdump, is it
going to hurt things to not copy in that case? Do the network scripts in
the real root care? They have to handle the case when you don't have a
kdump anyway -- assuming you don't bring up the network in dracut unless
you have a dump push.

If they really do care, then perhaps consider splitting out the copying
of the config to a separate step that can be shared, rather than making
things uglier than they already are. It'd probably be a good cleanup on
it's own merits.

Dave




--
To unsubscribe from this list: send the line "unsubscribe initramfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux