[PATCH] udev: mode should be mode_t

Unix file modes should be stored in a mode_t, not a standard type.  At
the moment it is actually unsigned, in fact, not a signed integer.

Attached patch does an s/int mode/mode_t mode/ and cleans up the
results.
This commit is contained in:
rml@tech9.net 2003-10-19 21:56:21 -07:00 committed by Greg KH
parent d7e954a4ef
commit c2405f502c
5 changed files with 12 additions and 10 deletions

View File

@ -446,7 +446,8 @@ static int namedev_init_permissions(void)
dev.attr.mode = strtol(temp, NULL, 8); dev.attr.mode = strtol(temp, NULL, 8);
dbg_parse("name = %s, owner = %s, group = %s, mode = %#o", dbg_parse("name = %s, owner = %s, group = %s, mode = %#o",
dev.attr.name, dev.attr.owner, dev.attr.group, dev.attr.mode); dev.attr.name, dev.attr.owner, dev.attr.group,
dev.attr.mode);
retval = add_dev(&dev); retval = add_dev(&dev);
if (retval) { if (retval) {
dbg("add_dev returned with error %d", retval); dbg("add_dev returned with error %d", retval);
@ -459,7 +460,7 @@ exit:
return retval; return retval;
} }
static int get_default_mode(struct sysfs_class_device *class_dev) static mode_t get_default_mode(struct sysfs_class_device *class_dev)
{ {
/* just default everyone to rw for the world! */ /* just default everyone to rw for the world! */
return 0666; return 0666;
@ -544,7 +545,7 @@ static int get_attr(struct sysfs_class_device *class_dev, struct device_attr *at
int retval = 0; int retval = 0;
int found; int found;
attr->mode = -1; attr->mode = 0;
if (class_dev->sysdevice) { if (class_dev->sysdevice) {
dbg_parse("class_dev->sysdevice->directory->path = '%s'", class_dev->sysdevice->directory->path); dbg_parse("class_dev->sysdevice->directory->path = '%s'", class_dev->sysdevice->directory->path);
dbg_parse("class_dev->sysdevice->bus_id = '%s'", class_dev->sysdevice->bus_id); dbg_parse("class_dev->sysdevice->bus_id = '%s'", class_dev->sysdevice->bus_id);
@ -751,9 +752,10 @@ label_found:
} }
} }
strcpy(attr->name, class_dev->name); strcpy(attr->name, class_dev->name);
done: done:
if (attr->mode == -1) { /* mode was never set above */
if (!attr->mode) {
attr->mode = get_default_mode(class_dev); attr->mode = get_default_mode(class_dev);
attr->owner[0] = 0x00; attr->owner[0] = 0x00;
attr->group[0] = 0x00; attr->group[0] = 0x00;

View File

@ -71,7 +71,7 @@ exit:
/* /*
* We also want to add some permissions here, and possibly some symlinks * We also want to add some permissions here, and possibly some symlinks
*/ */
static int create_node(char *name, char type, int major, int minor, int mode) static int create_node(char *name, char type, int major, int minor, mode_t mode)
{ {
char filename[255]; char filename[255];
int retval = 0; int retval = 0;
@ -94,7 +94,7 @@ static int create_node(char *name, char type, int major, int minor, int mode)
} }
dbg("mknod(%s, %#o, %u, %u)", filename, mode, major, minor); dbg("mknod(%s, %#o, %u, %u)", filename, mode, major, minor);
retval = mknod(filename,mode,makedev(major,minor)); retval = mknod(filename, mode, makedev(major, minor));
if (retval) if (retval)
dbg("mknod(%s, %#o, %u, %u) failed with error '%s'", dbg("mknod(%s, %#o, %u, %u) failed with error '%s'",
filename, mode, major, minor, strerror(errno)); filename, mode, major, minor, strerror(errno));

2
udev.h
View File

@ -59,7 +59,7 @@ struct device_attr {
char name[NAME_SIZE]; char name[NAME_SIZE];
char owner[OWNER_SIZE]; char owner[OWNER_SIZE];
char group[GROUP_SIZE]; char group[GROUP_SIZE];
int mode; mode_t mode;
}; };
extern int udev_add_device(char *device, char *subsystem); extern int udev_add_device(char *device, char *subsystem);

View File

@ -73,7 +73,7 @@ struct namedb_record {
char type; char type;
int major; int major;
int minor; int minor;
int mode; mode_t mode;
}; };
/** /**

View File

@ -25,7 +25,7 @@ struct udevice {
char type; char type;
int major; int major;
int minor; int minor;
int mode; mode_t mode;
}; };
/* Function Prototypes */ /* Function Prototypes */