X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev-add.c;h=10df31458d5cbebcffa93bf256d31777f905f18b;hp=adbeb92425f5247a0497c61aac548f24c58f01e3;hb=1331c889c33a91f098fa7257488046e81241225c;hpb=0abf54fc09030f404f5c7d724a0f30d3e875e980 diff --git a/udev-add.c b/udev-add.c index adbeb9242..10df31458 100644 --- a/udev-add.c +++ b/udev-add.c @@ -78,20 +78,27 @@ static int create_node(char *name, char type, int major, int minor, int mode) int retval = 0; strncpy(filename, UDEV_ROOT, sizeof(filename)); strncat(filename, name, sizeof(filename)); - if (type == 'b') { - mode |= S_IFBLK; - } else if ((type == 'c') || (type == 'u')){ - mode |= S_IFCHR; - } else if ( type == 'p') { - mode |= S_IFIFO; - } else { - dbg("unknown node type %c\n", type); - return -1; - } + switch (type) { + case 'b': + mode |= S_IFBLK; + break; + case 'c': + case 'u': + mode |= S_IFCHR; + break; + case 'p': + mode |= S_IFIFO; + break; + default: + dbg("unknown node type %c\n", type); + return -EINVAL; + } retval = mknod(filename,mode,makedev(major,minor)); + if (retval) + dbg("mknod(%s, %#o, %u, %u) failed with error '%s'", + filename, mode, major, minor, strerror(errno)); return retval; - } struct sysfs_class_device *get_class_dev(char *device_name)