summaryrefslogtreecommitdiffstats
path: root/sys/fs/devfs/devfs_devs.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2005-03-10 18:21:34 +0000
committerphk <phk@FreeBSD.org>2005-03-10 18:21:34 +0000
commit75bcf4d381dea96e2c41fb2edafacd6e06dd1f43 (patch)
treef972184c76526c477d18e70db28e2908e1edd6f5 /sys/fs/devfs/devfs_devs.c
parentd0ffad32b585c4e46b0814f34d9469d7bbb374b3 (diff)
downloadFreeBSD-src-75bcf4d381dea96e2c41fb2edafacd6e06dd1f43.zip
FreeBSD-src-75bcf4d381dea96e2c41fb2edafacd6e06dd1f43.tar.gz
Try to fix the mess I made of devname, with the minimal subset of the
larger minor/major patch which was posted for testing.
Diffstat (limited to 'sys/fs/devfs/devfs_devs.c')
-rw-r--r--sys/fs/devfs/devfs_devs.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/fs/devfs/devfs_devs.c b/sys/fs/devfs/devfs_devs.c
index e9c2a55..761caa5 100644
--- a/sys/fs/devfs/devfs_devs.c
+++ b/sys/fs/devfs/devfs_devs.c
@@ -114,6 +114,8 @@ struct devfs_dirent **
devfs_itode (struct devfs_mount *dm, int inode)
{
+ if (inode < 0)
+ return (NULL);
if (inode < NDEVFSINO)
return (&dm->dm_dirent[inode]);
if (devfs_overflow == NULL)
@@ -127,6 +129,8 @@ struct cdev **
devfs_itod (int inode)
{
+ if (inode < 0)
+ return (NULL);
if (inode < NDEVFSINO)
return (&devfs_inot[inode]);
if (devfs_overflow == NULL)
@@ -270,10 +274,7 @@ devfs_populate(struct devfs_mount *dm)
if (dev == NULL && de != NULL) {
dd = de->de_dir;
*dep = NULL;
- TAILQ_REMOVE(&dd->de_dlist, de, de_list);
- if (de->de_vnode)
- de->de_vnode->v_data = NULL;
- FREE(de, M_DEVFS);
+ devfs_delete(dd, de);
devfs_dropref(i);
continue;
}
OpenPOWER on IntegriCloud