chiark / gitweb /
[PATCH] fix stupid all_partitions bug
[elogind.git] / udev_add.c
index 15c6bf9fbca0ea5f951431c6870f78b2aa213c66..b1e7265a3c381bc60fe23cf2f462e67b53252c20 100644 (file)
@@ -58,7 +58,7 @@ int udev_make_node(struct udevice *udev, const char *file, dev_t devt, mode_t mo
        /* preserve node with already correct numbers, to not change the inode number */
        if (((stats.st_mode & S_IFMT) == S_IFBLK || (stats.st_mode & S_IFMT) == S_IFCHR) &&
            (stats.st_rdev == devt)) {
-               dbg("preserve file '%s', cause it has correct dev_t", file);
+               info("preserve file '%s', cause it has correct dev_t", file);
                selinux_setfilecon(file, udev->kernel_name, stats.st_mode);
                goto perms;
        }
@@ -85,7 +85,7 @@ create:
        retval = mknod(file, mode, devt);
        selinux_resetfscreatecon();
        if (retval != 0) {
-               dbg("mknod(%s, %#o, %u, %u) failed with error '%s'",
+               err("mknod(%s, %#o, %u, %u) failed with error '%s'",
                    file, mode, major(devt), minor(devt), strerror(errno));
                goto exit;
        }
@@ -182,7 +182,7 @@ static int create_node(struct udevice *udev, struct sysfs_class_device *class_de
 
                                snprintf(partitionname, sizeof(partitionname), "%s%d", filename, i);
                                partitionname[sizeof(partitionname)-1] = '\0';
-                               part_devt = makedev(major(udev->devt), minor(udev->devt)+1);
+                               part_devt = makedev(major(udev->devt), minor(udev->devt) + i);
                                udev_make_node(udev, partitionname, part_devt, udev->mode, uid, gid);
                        }
                }
@@ -241,7 +241,7 @@ static int rename_net_if(struct udevice *udev)
        struct ifreq ifr;
        int retval;
 
-       dbg("changing net interface name from '%s' to '%s'", udev->kernel_name, udev->name);
+       info("changing net interface name from '%s' to '%s'", udev->kernel_name, udev->name);
        if (udev->test_run)
                return 0;
 
@@ -276,8 +276,11 @@ int udev_add_device(struct udevice *udev, struct sysfs_class_device *class_dev)
                }
        }
 
-       if (udev_rules_get_name(udev, class_dev) != 0)
+       udev_rules_get_name(udev, class_dev);
+       if (udev->ignore_device) {
+               dbg("device event will be ignored");
                return 0;
+       }
 
        dbg("adding name='%s'", udev->name);