1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-31 16:21:26 +03:00

udev: port udev_has_devtmpfs() to use path_get_mnt_id()

This means there's a good chance the code also works on kernels that
lack name_to_handle_at().
This commit is contained in:
Lennart Poettering 2017-11-20 16:08:06 +01:00
parent c2a986d509
commit 654c87e0e6

View File

@ -96,8 +96,7 @@ struct udev_monitor_netlink_header {
unsigned int filter_tag_bloom_lo; unsigned int filter_tag_bloom_lo;
}; };
static struct udev_monitor *udev_monitor_new(struct udev *udev) static struct udev_monitor *udev_monitor_new(struct udev *udev) {
{
struct udev_monitor *udev_monitor; struct udev_monitor *udev_monitor;
udev_monitor = new0(struct udev_monitor, 1); udev_monitor = new0(struct udev_monitor, 1);
@ -117,13 +116,13 @@ static bool udev_has_devtmpfs(struct udev *udev) {
_cleanup_fclose_ FILE *f = NULL; _cleanup_fclose_ FILE *f = NULL;
char line[LINE_MAX], *e; char line[LINE_MAX], *e;
int mount_id; int mount_id, r;
int r;
r = name_to_handle_at_loop(AT_FDCWD, "/dev", NULL, &mount_id, 0); r = path_get_mnt_id("/dev", &mount_id);
if (r < 0) { if (r < 0) {
if (errno != EOPNOTSUPP) if (r != -EOPNOTSUPP)
log_debug_errno(errno, "name_to_handle_at on /dev: %m"); log_debug_errno(r, "name_to_handle_at on /dev: %m");
return false; return false;
} }
@ -168,8 +167,7 @@ static void monitor_set_nl_address(struct udev_monitor *udev_monitor) {
udev_monitor->snl.nl.nl_pid = snl.nl.nl_pid; udev_monitor->snl.nl.nl_pid = snl.nl.nl_pid;
} }
struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const char *name, int fd) struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const char *name, int fd) {
{
struct udev_monitor *udev_monitor; struct udev_monitor *udev_monitor;
unsigned int group; unsigned int group;
@ -253,8 +251,7 @@ struct udev_monitor *udev_monitor_new_from_netlink_fd(struct udev *udev, const c
* *
* Returns: a new udev monitor, or #NULL, in case of an error * Returns: a new udev monitor, or #NULL, in case of an error
**/ **/
_public_ struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, const char *name) _public_ struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev, const char *name) {
{
return udev_monitor_new_from_netlink_fd(udev, name, -1); return udev_monitor_new_from_netlink_fd(udev, name, -1);
} }