Comment 15 for bug 433537

Revision history for this message
Smidge (smidgey) wrote :

Hi,

I've also seen this problem on my system, where I use AUFS overlays over squashfs filesystems. I'm not sure if I understand the ubuntu-boot ppa page correctly, in that there doesn't seem to be any mention of updated mountall there but I am under the impression that the fixes mentioned in this thread are all released now.

My problem was twofold - firstly, when mountall parses my aufs line in function parse_fstab() it overrides the squashfs with a call to function update_mount(), instead of adding a second entry with new_mount().

I overcame this by adding a special condition for AUFS mounts, so that it calls new_mount() instead.

The second problem was in function mount_policy(). Now that I was getting a mount point for my squashfs, and one for my AUFS,
mount_policy() was making them dependents of each other, and this cyclic dependency was causing an endless loop.

I solved for this on my system by adding a condition in mount_policy() whereby an AUFS mount will nominate it's matching mountpoint as a dependency, and then adding a condition in is_parent() that returns FALSE if the length of the root is EQUAL TO OR GREATER THAN the length of the path.

Compiled and tested happily on my own system, a patch to mountall.c has been attached (to clarify what I am talking about here, as opposed to promoting it as the proper solution)