diff options
| author | Poul-Henning Kamp <phk@FreeBSD.org> | 2003-10-20 07:04:09 +0000 |
|---|---|---|
| committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2003-10-20 07:04:09 +0000 |
| commit | 7e8766a940f6cd9f475a9aba3a2099f7e5501f56 (patch) | |
| tree | a90fac68bfcd15a4bafe05b66db240b51564f147 | |
| parent | 9027d603d3b9259029eff5cb5bd8e303e04bdda8 (diff) | |
Notes
| -rw-r--r-- | sys/fs/devfs/devfs_vnops.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c index 49ea181f7485..7f57e7c7fadc 100644 --- a/sys/fs/devfs/devfs_vnops.c +++ b/sys/fs/devfs/devfs_vnops.c @@ -297,8 +297,9 @@ devfs_lookupx(ap) struct vnode *dvp, **vpp; struct thread *td; struct devfs_dirent *de, *dd; + struct devfs_dirent **dde; struct devfs_mount *dmp; - dev_t cdev, *cpdev; + dev_t cdev; int error, flags, nameiop; char specname[SPECNAMELEN + 1], *pname; @@ -382,13 +383,11 @@ devfs_lookupx(ap) goto notfound; devfs_populate(dmp); - dd = dvp->v_data; - TAILQ_FOREACH(de, &dd->de_dlist, de_list) { - cpdev = devfs_itod(de->de_inode); - if (cpdev != NULL && cdev == *cpdev) - goto found; - continue; + dde = devfs_itode(dmp, cdev->si_inode); + if (dde != NULL && *dde != DE_DELETED && *dde != NULL) { + de = *dde; + goto found; } notfound: |
