Created by James Westby on 2009-09-15 and last modified on 2010-10-02
Get this branch:
bzr branch lp:ubuntu/karmic/mountall
Members of Ubuntu branches can upload to this branch. Log in for directions.

Branch merges

Related bugs

Related blueprints

Branch information

Ubuntu branches
Review team:
Ubuntu Development Team

Recent revisions

11. By Scott James Remnant (Canonical) on 2009-10-26

[ Kees Cook ]
* Call out to restorecon after mounting tmpfs filesystems. LP: #456942.

[ Johan Kiviniemi ]
* Fix a bug introduced by the 0.2.6 change. In certain situations, we’d
  quit even though we’re still waiting for some filesystems to be
  mounted. LP: #456806.

[ Scott James Remnant ]
* Don't clear the splash screen when we're waiting for filesystems,
  instead just output following whatever else is there. In non-verbose
  mode this won't look any different, but it means we don't clear previous
  verbose mode text. LP: #458389.
* Only update the "waiting for one or more mounts" text if there's actually
  a change in the set we're waiting for; this removes the need for a CLEAR
  this case anyway.
* Don't say we're waiting for mounts we're, in fact, not waiting
  for. LP: #459859.
* Stop mountall (normally) when entering recovery mode. LP: #458060.

* Clean up source tarball. LP: #460348.

10. By Scott James Remnant (Canonical) on 2009-10-20

* Filesystem check progress reporting, including cancellation. LP: 446596.
* When we're waiting for a mountpoint, if a few seconds of inactivity
  passes, report what we're waiting for and allow Escape to drop you to
  a recovery shell.
* Start usplash for filesystem check progress reporting or when we've
  been waiting for more than a few seconds. LP: #431184.

* Hide error removing /forcefsck, people mis-report this as a bug and
  don't tell us the error above it.
* Don't call mount.ecryptfs or mount.aufs when adding an entry for
  /etc/mtab; these helpers are broken and do not support the -f argument.
  This means your passphrase may end up in /etc/mtab, blame them not me.
  LP: #431954, #443080.
* Unlink /etc/mtab~ after creating/truncating /etc/mtab and before writing
  mtab entries. LP: #431865.
* Stop the recovery shell if the user runs shutdown within it, so we
  don't run mountall again. LP: #452196.
* If the root filesystem check fails, we'll need to reboot, so just have
  the recovery shell script do that.

* Post-review logic fixes.

9. By Scott James Remnant (Canonical) on 2009-10-13

[ Steve Langasek ]
* Don't emit the local-filesystem signal until after virtual filesystems
  are also done mounting. LP: #448981.

[ Robert Gerlach ]
* Fix segfault when root filesystem missing from fstab, or listed
  as /dev/root. LP: #448323.

[ Johan Kiviniemi ]
* Don’t queue filesystem check when either device or type is "none".

[ Scott James Remnant ]
* Removed /srv from the list of "essential" mountpoints. LP: #448267.
* Allow overriding of the above list by using the "bootwait" and
  "nobootwait" fstab options, e.g.

  LABEL=foo /home ext4 nobootwait 0 0

* Mount /proc before attempting to parse /proc/filesystems. LP: #447947.
* Further improvements to event tagging of filesystems. A virtual bootwait
  filesystem underneath a local or remote filesystem inherits that tag,
  a local bootwait filesystem underneath a remote filesystem inherits that
  tag, remote filesystems do not inherit them. LP: #447654.

* Replace previous hardcoded "arch specific" flag for /spu with an
  "optional" fstab mount option.
* Made binfmt_misc,fusectl, debugfs, securityfs and /lib/init/rw optional
  as well.
* Check whether the mountpoint of optional fstab entries exists before
  trying to mount, and skip over that if it doesn't. LP: #447525.

* Keep /proc/self/mountinfo open, if it changes while we're running,
  update the knowledge of the mount table and what's mounted. That
  way if something else mounts it while mountall running, you'll still
  get events and mountall will still exit.
* Try mounts again if another network device comes up while we were

8. By Steve Langasek on 2009-10-09

Make mountall recognize that *remote* filesystems are still remote, given
that their parent fs is almost always local. LP: #447654.

7. By Scott James Remnant (Canonical) on 2009-10-09

[ Colin Watson ]
* Always check the root filesystem if --force-fsck is used, regardless of
  passno. LP: #435707.

[ Johan Kiviniemi ]
* Have each fsck instance create a lock for each underlying physical device.
  If you have a single disk or RAID, all filesystem checks will happen
  sequentially in order to avoid thrashing. On more complex configurations,
  you’ll benefit from the parallel checks mountall has been doing all along.
  LP: #434974.

[ Scott James Remnant ]
* Flush standard output and error before spawning processes to make
  capturing logs easier (otherwise we end up repeating things still in
  the buffer), and before calling exec().
* Turn the code upside down so that each mount knows what it's waiting
  for, and allow multiple dependencies. This makes the code much more
  readable putting the "policy" in a single function, and will make it
  much easier in future when this is done by Upstart.
* For kernel filesystems listed in fstab, honour the order that they
  are listed in fstab. LP: #432571, #433537, #436796
* Always create new swap partition mounts for each fstab entry, don't
  treat them as updating the same. LP: #435027.
* Virtual filesystems under local or remote filesystems (and local under
  remote) don't delay the virtual or local events. LP: #431040.
* Simplify event emission, this has the advantage that we can now output
  what mount points we're waiting for and what they are waiting for as
* Fixed issue with trailing slashes. LP: #443035.
* Only run hooks if the filesystem was not already mounted. LP: #444252.
* Don't clean up /tmp when run without --tmptime argument.
* Ignore loop and ram devices until ready. LP: #441454.
* Add options to binfmt_misc filesystem, which will probably cause it to
  be mounted on boot as well.
* Synchronously mount local and virtual filesystems, I suspect this is
  the real cause behind the XFS races as one will modprobe and the other
  will not (and fail). LP: #432620.
* Synchronously activate swap to avoid out of memory issues when checking
  the root filesystem.
* Enumerate existing udev devices on startup, so we don't always have to
  see udev be coldplugged.
* Don't break on general errors for non-essential filesystems.
  LP: #441144.
* Don't repeat attempts to mount a filesystem without having first
  succeded to mount another.
* Still restart mountall even if the recovery shell fails.
* Don't queue filesystem check when device is "none", or missing, or the
  filesystem is marked nodev.
* Generate a "mount" event before mounting a filesystem, and wait for its
  effects to complete.

6. By Scott James Remnant (Canonical) on 2009-09-23

[ Scott James Remnant ]
* Further work on the fix from the previous version where the root
  filesystem would always be considered "local", retain that from the
  POV of the {virtual,local,remote}-filesystems events, but do mount
  the root straight away when it's virtual since there's no device to
  wait until it's ready. LP: #431204.
* If a remote filesystem is already mounted and doesn't need a remount,
  don't wait for a network device to come up. LP: #430348.

* Ignore single and double quotes in fstab device specifications, since
  mount -a used to. LP: #431064.
* Never write mtab when mounting a mount with showthroughs (ie. /var)
  and instead update mtab once we've moved it into place
  later. LP: #434172.

[ Kees Cook ]
* src/mountall.c: rework nftw hooks to use a global for argument passing
  instead of using nested functions and the resulting trampolines that
  cause an executable stack. LP: #434813.
* debian/rules: revert powerpc exception, since the cause is fixed by
  removing the nested functions.

5. By Matthias Klose on 2009-09-21

Build with -O2 on powerpc to work around wrong-code generation with -Os.
LP: #432222.

4. By Scott James Remnant (Canonical) on 2009-09-16

[ Scott James Remnant ]
* Restored mistakenly removed dh_installchangelogs & dh_installdocs.

* Allow a further udev event for a block-device to retry swapon/mount
  after fsck has been already been completed for a prior event.
* Massively reduce the pickyness of mountall when it comes to block
  devices; only expect ID_FS_USAGE and ID_FS_TYPE for dm and md devices,
  and don't actually expect the values. For most people this won't make
  a difference, since we use UUID= anyway. But for people with hardcoded
  /dev/sda1 in their fstab, which has multiple metadata, this won't break
  their boot.

* Only include FHS filesystems in the {virtual,local,remote}-filesystems
  events. This prevents an unmountable entry in fstab blocking things like
  starting D-Bus or the Network which are required to mount that filesystem.
  LP: #430880.
* Never consider the root filesystem to be virtual or remote, even when
  it is, since we assert that it's already mounted so we don't have to
  take care of it. LP: #431028.
* Check whether filesystems mounted readonly when we start do not have
  "ro" in their fstab, before assuming we need to remount them.
  Readonly filesystems not in fstab (e.g. LiveCD, Wubi, etc.) never need
  remounting. LP: #431028.
* Only virtual filesystems will be mounted while the root filesystem is
  readonly, not filesystems such as /usr and /var.
* fuse filesystems are never considered virtual, since they probably
  need devices, write access and the hand of god to be mounted.

[ Colin Watson ]
* Ignore errors from kill in mountall-net, since they're almost certainly
  just because mountall exited before we had a chance to kill it
  LP: #430755.

3. By Steve Langasek on 2009-09-16

We need debhelper 7 anyway, so convert debian/rules to dh so we don't
leave things like the changelog and the copyright file out of the package.

2. By Scott James Remnant (Canonical) on 2009-09-16

[Johan Kiviniemi]
* Don't run fsck when the device has already been marked ready.

[Scott James Remnant]
* Don't abort when we have nothing to copy into /dev and /var/run, or
  nothing to remove from /tmp

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
This branch contains Public information 
Everyone can see this information.