- udev_selinux_setfscreatecon(udev, file, mode);
- err = mknod(file, mode, devnum);
- udev_selinux_resetfscreatecon(udev);
+ do {
+ err = util_create_path(udev, file);
+ if (err != 0 && err != -ENOENT)
+ break;
+ udev_selinux_setfscreatecon(udev, file, mode);
+ err = mknod(file, mode, devnum);
+ if (err != 0)
+ err = -errno;
+ udev_selinux_resetfscreatecon(udev);
+ } while (err == -ENOENT);