diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/devfs.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/devfs.c b/fs/devfs.c index 6cf8920cb8..3a90603e54 100644 --- a/fs/devfs.c +++ b/fs/devfs.c @@ -54,7 +54,7 @@ struct dirent* devfs_readdir(struct device_d *_dev, struct dir *dir) { struct device_d *dev = dir->priv; - while (dev && !strlen(dev->id)) + while (dev && (!strlen(dev->id) || !dev->driver)) dev = dev->next; if (dev) { @@ -79,6 +79,9 @@ int devfs_stat(struct device_d *_dev, const char *filename, struct stat *s) if (!dev) return -ENOENT; + if (!dev->driver) + return -ENXIO; + s->st_mode = S_IFCHR; s->st_size = dev->size; if (dev->driver->write) |