[trusty] mount -o loop is limited to 8 loop devices
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
util-linux (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Trusty |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
trusty has a very old util-linux which does not yet know about /dev/loop-control to create arbitrarily many loop devices. This feature was introduced in Linux 3.1 already (i. e. before precise even). This is a showstopper for backporting snappy as that needs a lot of loop mounts.
Support for loop-control got introduced later util-linux versions, but backporting full support for it (for losetup) is too intrusive. We only need a partial backport for "mount -o loop".
SRU TEST CASE:
First, use up all default 8 loop devices:
$ for i in `seq 8`; do echo $i; sudo losetup --find /etc/issue; done
Now try to use a 9th:
$ dd if=/dev/zero of=/tmp/img bs=1M count=50
$ mkfs.ext2 -F /tmp/img
$ sudo mount -o loop /tmp/img /mnt
With current trusty's "mount" package this will fail with "could not find any free loop device". With the proposed version, this should succeed, and "sudo losetup -a" should show "/dev/loop8: ... (/tmp/img)".
Now, reboot, disable loop-control with
sudo mv /dev/loop-
and run the test case again. Now "mount -o loop" should fail with "could not find any free loop device" (as before). Ensure that there are no hangs, infinite loops, etc.
ADDITIONAL REGRESSION CHECKING TEST CASES
1. Check that every type of losetup call documented in the losetup manpage still works correctly.
2. Check that mount and umount commands that use loop devices still work correctly.
REGRESSION POTENTIAL: /dev/loop-control and the corresponding util-linux support has exited for a long time without known/major issues, so this should be fairly safe. Also, the patch falls back to the previous "iterate over loop0 to loop7" behaviour if loop-control is not available.
Changed in util-linux (Ubuntu): | |
status: | New → Fix Released |
Changed in util-linux (Ubuntu Trusty): | |
status: | New → Triaged |
description: | updated |
description: | updated |
summary: |
- [trusty] limited to 8 loop devices + [trusty] mount -o loop is limited to 8 loop devices |
description: | updated |
description: | updated |
description: | updated |
For the record: Commit 0b14bf7a is not sufficient. That neither fixes "losetup" nor "mount -o loop", and systemd's .mount units also just get translated into a /bin/mount -o loop" call.