Ayan and I investigated this, and found out an interesting thing: When I
explicitly use losetup/mount/umount/losetup -d as in comment 40, the
aforementioned kernel patch [1] takes care to send a "change" uevent
when the losetup -d happens.

However, when I use the approach that usb-creator uses, things still go
wrong:

    sudo mount -o loop ~/download/ubuntu/natty-desktop-amd64.iso /mnt

This sends  a "change" event on loop0 which causes udev/udisks/etc. to
re-read the device, and see that there's an iso9660 file system on it.

    sudo umount /mnt

This does NOT send a change event on loop0, although it does tear down
the loop device. So after that, udev/udisks (and thus the gvfs stack)
still think that /dev/loop0 is a mountable iso9660 file system.

A workaround would be to poke the loop device in the usb creator
backend:

     def UnmountFile(self, device, sender=None, conn=None):
         popen(['umount', device])
+        popen(['udevadm', 'trigger', '--verbose', '--sysname-match=loop0'])

Ayan is currently testing this.

But the proper bug fix would be to either fix umount to tear down loop0
"more properly" so that the kernel patch kicks in, or fix the kernel to
also send a change event on the missing case that umount triggers if it
unmounts a loop device that was mounted with "-o loop".


[1] 
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=c3473c63542d53740f175f3a515257ae159e998b

** Package changed: gnome-disk-utility (Ubuntu) => linux (Ubuntu)

-- 
You received this bug notification because you are a member of Ubuntu
Desktop Bugs, which is subscribed to gnome-disk-utility in Ubuntu.
https://bugs.launchpad.net/bugs/548546

Title:
  Nautilus does not remove usb drive made with USB-Creator after
  unmounting it

-- 
desktop-bugs mailing list
desktop-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/desktop-bugs

Reply via email to