diff options
-rw-r--r-- | src/udev/udevd.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/udev/udevd.c b/src/udev/udevd.c index a3f17c4b09..2d0ac6d61d 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -1505,9 +1505,22 @@ int main(int argc, char *argv[]) { continue; /* device node watch */ - if (is_inotify) + if (is_inotify) { handle_inotify(udev); + /* + * settle might be waiting on us to determine the queue + * state. If we just handled an inotify event, we might have + * generated a "change" event, but we won't have queued up + * the resultant uevent yet. + * + * Before we go ahead and potentially tell settle that the + * queue is empty, lets loop one more time to update the + * queue state again before deciding. + */ + continue; + } + /* tell settle that we are busy or idle, this needs to be before the * PING handling */ |