ifcfg-rh: respect DEVTIMEOUT if link is not announced by udev yet (rh #1192633)

If NIC related initialization takes a long time in udev processing, but we have
an ifindex from kernel, we still want to wait until udev is finished and the
device is really usable.
Check that by calling nm_platform_link_get_by_ifname() and checking @initialized,
which means udev is finished.

Based on a patch by t-nishimura@hf.jp.nec.com
Improved by thaller@redhat.com

https://bugzilla.redhat.com/show_bug.cgi?id=1192633
(cherry picked from commit ecdf7cba6b)
This commit is contained in:
Jiří Klimeš 2015-07-16 10:21:36 +02:00
parent 192ad96b1b
commit f3472ea4d8

View file

@ -149,6 +149,7 @@ nm_ifcfg_connection_check_devtimeout (NMIfcfgConnection *self)
const char *ifname;
const char *filename;
guint devtimeout;
const NMPlatformLink *pllink;
s_con = nm_connection_get_setting_connection (NM_CONNECTION (self));
@ -164,7 +165,8 @@ nm_ifcfg_connection_check_devtimeout (NMIfcfgConnection *self)
if (!devtimeout)
return;
if (nm_platform_link_get_ifindex (NM_PLATFORM_GET, ifname) != 0)
pllink = nm_platform_link_get_by_ifname (NM_PLATFORM_GET, ifname);
if (pllink && pllink->initialized)
return;
/* ONBOOT=yes, DEVICE and DEVTIMEOUT are set, but device is not present */