DEVFS needs a special bdevvp().
I just noticed some junk in my patch. I'll remove that in a sec.
This commit is contained in:
parent
e83cf165d6
commit
c74bb98638
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Written by Julian Elischer (julian@DIALix.oz.au)
|
||||
*
|
||||
* $Header: /home/ncvs/src/sys/miscfs/devfs/devfs_tree.c,v 1.24 1996/04/07 01:15:01 joerg Exp $
|
||||
* $Header: /home/ncvs/src/sys/miscfs/devfs/devfs_tree.c,v 1.25 1996/06/12 05:08:29 gpalmer Exp $
|
||||
*/
|
||||
|
||||
#include "param.h"
|
||||
@ -783,6 +783,42 @@ DBPRINT((" vntodn "));
|
||||
return(0);
|
||||
}
|
||||
|
||||
static dn_p
|
||||
findbdev(dev_t dev, dn_p dir)
|
||||
{
|
||||
devnm_p newfp;
|
||||
dn_p dnp;
|
||||
|
||||
for(newfp = dir->by.Dir.dirlist;newfp;newfp=newfp->next) {
|
||||
dnp = newfp->dnp;
|
||||
if (dnp->type == DEV_BDEV && dnp->by.Bdev.dev == dev) {
|
||||
return (dnp);
|
||||
}
|
||||
if (dnp->type == DEV_DIR) {
|
||||
if (dnp = findbdev(dev, dnp))
|
||||
return dnp;
|
||||
}
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Create a vnode for a block device.
|
||||
* Used for root filesystem, argdev, and swap areas.
|
||||
* Also used for memory file system special devices.
|
||||
*/
|
||||
|
||||
int
|
||||
bdevvp(dev_t dev, struct vnode **vpp)
|
||||
{
|
||||
dn_p dnp = 0;
|
||||
|
||||
dnp= findbdev(dev, dev_root->dnp);
|
||||
if (!dnp)
|
||||
return (0);
|
||||
return (devfs_dntovn(dnp, vpp));
|
||||
}
|
||||
|
||||
/***************************************************************\
|
||||
* given a dev_node, find the appropriate vnode if one is already*
|
||||
* associated, or get a new one an associate it with the dev_node*
|
||||
|
Loading…
x
Reference in New Issue
Block a user