Commit 35153d17 authored by Steve Langasek's avatar Steve Langasek
Browse files

Fix a further remaining issue from 2.41: by fixing the missing 'mounted'

events in 2.43, we have again introduced a case where mountall may block
waiting for 'mounted MOUNTPOINT=/' to return before handling 'mounted
MOUNTPOINT=/run' and emitting virtual-filesystems, thus causing
dependency loops and long boot timeouts.  LP: #1078926.
parent fc07ad7c
mountall (2.46) UNRELEASED; urgency=low
* Fix a further remaining issue from 2.41: by fixing the missing 'mounted'
events in 2.43, we have again introduced a case where mountall may block
waiting for 'mounted MOUNTPOINT=/' to return before handling 'mounted
MOUNTPOINT=/run' and emitting virtual-filesystems, thus causing
dependency loops and long boot timeouts. LP: #1078926.
-- Steve Langasek <vorlon@debian.org> Mon, 03 Dec 2012 13:29:34 -0800
mountall (2.45) unstable; urgency=low
[ Serge Hallyn ]
......
......@@ -1741,6 +1741,8 @@ try_mounts (void)
/* All mounts have been attempted, so wait for
* pending events.
*/
int still_pending = 0;
NIH_LIST_FOREACH (mounts, iter) {
Mount *mnt = (Mount *)iter;
DBusPendingCall *pending_call = mnt->pending_call;
......@@ -1748,10 +1750,17 @@ try_mounts (void)
if (!pending_call)
continue;
if (! dbus_pending_call_get_completed (pending_call))
{
still_pending++;
continue;
}
dbus_pending_call_block (pending_call);
dbus_pending_call_unref (pending_call);
mnt->pending_call = NULL;
}
if (still_pending > 0)
return;
if (control_server) {
dbus_server_disconnect (control_server);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment