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

Re: udev naming problems for eth*

Md wrote:
udev now can rename the interfaces, because they haven't a name yet.
udev still loads the modules, you just have been lucky.
This is not a solution in any way.

maybe I miss something, but for what I see we don't need udev not to load the modules: we just need they are not loaded *before* udev is ready to rename the interfaces.

I can see only two ways to do that:
1) the modules are not loaded till udev starts the renaming process, and that, as I can see, only happens *after* /sbin/init starts
2) udev is ready to rename from within the initramfs

T. Hood wrote:
I just looked at the "rename_netiface" script in that package.  The
following comments in the script give an idea of how it handles the
race problem.

    # look for a network interface name that is still not
    # used as persistent name. At first it tries the name the
    # interface currently has. If this name is already occupied,
    # then increase the number and try again.
    # To check if a name is occupied we have to look in
    # /etc/udev/rules.d/60-net_*.rules and in /tmp/used_interface_names*.
    # The latter serves as temporary registration file to avoid race
    # conditions. It will be removed when the script exits.

    # Simply try to rename directly, because it will work in most cases

    # Generate a temporary interface name

    # Rename it to the temporary name.
    # Then try several times to rename it to new name

this approach can only work if the names are not assigned yet.

I cannot see any way we can swap two interfaces' names after they're assigned, at least not in user space (exept if we use rmmod, of course)


Reply to: