qemu-nbd -r -c taints device for subsequent usage, even after -d
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
QEMU |
Fix Released
|
Undecided
|
Paolo Bonzini | ||
qemu-kvm (Ubuntu) |
Fix Released
|
High
|
Serge Hallyn | ||
Precise |
Fix Released
|
High
|
Unassigned | ||
Quantal |
Fix Released
|
High
|
Unassigned |
Bug Description
Something about qemu-nbd -r -c /dev/nbd0 someimg leaves cruft behind - subsequent connections get marked readonly.
This is on quantal, haven't checked precise or raring.
To demonstrate:
# use one image
qemu-img create -f qcow2 /tmp/1.qcow2 100M
sudo qemu-nbd -c /dev/nbd2 /tmp/1.qcow2
sudo mkfs -t ext4 /dev/nbd2
sudo qemu-nbd -d /dev/nbd2
# use a second one on the same nbd device, shows that reuse works:
qemu-img create -f qcow2 /tmp/2.qcow2 100M
sudo qemu-nbd -c /dev/nbd2 /tmp/2.qcow2
sudo mkfs -t ext4 /dev/nbd2
sudo qemu-nbd -d /dev/nbd2
# connect an image in read only mode
sudo qemu-nbd -r -c /dev/nbd2 /tmp/2.qcow2
sudo dumpe2fs /dev/nbd2 | head -n 3
sudo qemu-nbd -d /dev/nbd2
# now try to reuse in read-write mode again:
qemu-img create -f qcow2 /tmp/3.qcow2 100M
sudo qemu-nbd -c /dev/nbd2 /tmp/3.qcow2
sudo mkfs -t ext4 /dev/nbd2
# here it goes boom:
mke2fs 1.42.5 (29-Jul-2012)
/dev/nbd2: Operation not permitted while setting up superblock
# still need to cleanup
sudo qemu-nbd -d /dev/nbd2
=======
SRU Justification:
1. Impact: mounting an nbd device as read-write after doing so read-only
will cause the mount to erroneously (and quietly) be read-only.
2. Development fix: have qemu-nbd set the device to read-write when asked,
rather than only setting read-only.
3. Stable fix: same as development fix
4. Test case: See above
5. Regression potential: The patch is localized to the handling of read-only
flag in qemu-nbd, so any regression should not affect anything else.
=======
Related branches
tags: | added: patch |
Changed in qemu: | |
status: | New → In Progress |
assignee: | nobody → Paolo Bonzini (bonzini) |
Changed in qemu-kvm (Ubuntu): | |
assignee: | nobody → Serge Hallyn (serge-hallyn) |
status: | Triaged → In Progress |
Changed in qemu-kvm (Ubuntu Precise): | |
importance: | Undecided → High |
Changed in qemu-kvm (Ubuntu Quantal): | |
importance: | Undecided → High |
status: | New → Triaged |
Changed in qemu-kvm (Ubuntu Precise): | |
status: | New → Triaged |
description: | updated |
Changed in qemu-kvm (Ubuntu Precise): | |
status: | Triaged → In Progress |
Changed in qemu-kvm (Ubuntu Quantal): | |
status: | Triaged → In Progress |
Happens on Precise as well.