I think the bug is in libgdu. If the event custody chain is:
kernel uevent -> udev -> udev uevent -> (udisks sends D-BUS signal) -> (libgdu + gvfs)
We can test udisk with:
$ udisks --monitor-detail
You'll see that the "is mounted" flag is set properly when you mount and unmount a loop device.
You can test gvfs with:
$ gvfs-mount -io
And you'll see the events are backwards there.
I think the bug is in libgdu. If the event custody chain is:
kernel uevent -> udev -> udev uevent -> (udisks sends D-BUS signal) -> (libgdu + gvfs)
We can test udisk with:
$ udisks --monitor-detail
You'll see that the "is mounted" flag is set properly when you mount and unmount a loop device.
You can test gvfs with:
$ gvfs-mount -io
And you'll see the events are backwards there.