The ebuild sets KV_min=2.6.31 and prints out a message if the running kernel is older than that, but then checks for CONFIG_FHANDLE which doesn't exist in that kernel version. Based on the open_by_handle_at(2) man page I believe this option was new in 2.6.39.
Looking at the source, there appear to be two files that use this functionality. In path-util.c, there is a fallback code path that handles the case when this functionality is not available in the kernel (or file system). In libudev-monitor.c I think the use of this functionality is itself a fallback method of checking if udev is running, although I am not certain of this because I don't know udev's interface. So I think this kernel functionality will be used if available at runtime, but is not necessary for correct operation of eudev.
(In reply to William Throwe from comment #1) > Looking at the source, there appear to be two files that use this > functionality. In path-util.c, there is a fallback code path that handles > the case when this functionality is not available in the kernel (or file > system). In libudev-monitor.c I think the use of this functionality is > itself a fallback method of checking if udev is running, although I am not > certain of this because I don't know udev's interface. > > So I think this kernel functionality will be used if available at runtime, > but is not necessary for correct operation of eudev. If name_to_handle_at() fails (whether or not errno == EOPNOTSUPP), then udev_has_devtmpfs() returns false. This turns off monitoring of name = udev events in inudev_monitor_new_from_netlink_fd(), although kernel events are still okay. This is bad. I just added CONFIG_FHANDLE which threw the warning --- I wasn't previously aware of the min kernel version for name_to_handle_at(). Unfortunately, We probably should bump KV_min to 2.6.39.
I bumped KV_min to 2.6.39 in 1.6 and above. We have to make a decision here about whether to avoid the name_to_handle_at() (and not follow upstream) or bump KV_min.