discover/udev: Register udev monitor before enumerating devices
authorJeremy Kerr <jk@ozlabs.org>
Fri, 7 Mar 2014 05:46:49 +0000 (13:46 +0800)
committerJeremy Kerr <jk@ozlabs.org>
Fri, 7 Mar 2014 06:40:31 +0000 (14:40 +0800)
commit34c5230774ee2797b9f80b7f483e009cbb9f25f5
treef73199bec9ba2716cfbaf8fc3ad25a5dc74e2468
parentdedff99aae78a8af387e39fb0c5d3518689ee328
discover/udev: Register udev monitor before enumerating devices

Currently, we enumerate udev devices before setting up our monitor. This
means that we may lose devices that udev discovers after we start the
enumeration, but before the monitor is registered.

This change enables the monitor before enumeration, so we don't lose
devices. We add a filter to the enumeration code to only parse
completely initialised devices.

This means we may need to handle change events as the main source of
device notifications. We keep the existing CDROM event handler, but
check for new devices and handle those as an add.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
discover/udev.c