Comment 4 for bug 1197796

Revision history for this message
In , Jussi Pakkanen (jpakkane) wrote :

Created attachment 82191
Source code to demonstrate the issue

Sorry if this bug is filed in the wrong place. Information on GUdev is sparse and as far as I can tell, systemd is the upstream.

Anyway, the g_udev_client_query_by_device_number function fails on directories that are in subvolumes. An example is a btrfs file system with two subvolumes, @ (mounted as root) and @home (mounted as /home). This also happens when using encrypted home directories.

Having a subvolume might not be the real reason it fails, but that is what seems to be triggering the issue.

To replicate, download the attached source code. Compile it with "gcc -Wall -o idnum idnum.c `pkg-config --cflags --libs glib-2.0 gio-2.0 gudev-1.0`".

When run on a plain ext4 volume, the output is this:

./idnum
Device id is 2065.

Whereas on btrfs the output is this:

./idnum
Device id is 25.
Could not get device from num.

Originally filed here: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1197796