diff options
author | bde <bde@FreeBSD.org> | 1998-09-08 16:59:37 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 1998-09-08 16:59:37 +0000 |
commit | d886019b37cf7a9d8cbde74e3434724b65f9870a (patch) | |
tree | 66b1dacf6ec0cd83c0c2f09351d8cb69fba701a4 /sys | |
parent | b1a46a64f829789406b9192367e98c3e10a73a4e (diff) | |
download | FreeBSD-src-d886019b37cf7a9d8cbde74e3434724b65f9870a.zip FreeBSD-src-d886019b37cf7a9d8cbde74e3434724b65f9870a.tar.gz |
Oops, don't assume that the environment is normal in devfs_mount().
It isn't for the hidden mountpoint. The static vfs's haven't been
attached then, so mp->mnt_vfc can't be valid.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/miscfs/devfs/devfs_vfsops.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/miscfs/devfs/devfs_vfsops.c b/sys/miscfs/devfs/devfs_vfsops.c index e98fc95..f275170 100644 --- a/sys/miscfs/devfs/devfs_vfsops.c +++ b/sys/miscfs/devfs/devfs_vfsops.c @@ -23,7 +23,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: devfs_vfsops.c,v 1.31 1998/08/16 01:21:51 bde Exp $ + * $Id: devfs_vfsops.c,v 1.32 1998/09/07 13:17:00 bde Exp $ * */ @@ -116,15 +116,17 @@ DBPRINT(("mount ")); return (ENOMEM); bzero(devfs_mp_p,sizeof(*devfs_mp_p)); devfs_mp_p->mount = mp; - mp->mnt_data = (void *)devfs_mp_p; /*- * Fill out some fields */ mp->mnt_data = (qaddr_t)devfs_mp_p; - mp->mnt_stat.f_type = mp->mnt_vfc->vfc_typenum; + if (mp->mnt_vfc == NULL) + mp->mnt_stat.f_type = -1; /* doing hidden mountpoint */ + else + mp->mnt_stat.f_type = mp->mnt_vfc->vfc_typenum; mp->mnt_stat.f_fsid.val[0] = (intptr_t)(void *)devfs_mp_p; - mp->mnt_stat.f_fsid.val[1] = mp->mnt_vfc->vfc_typenum; + mp->mnt_stat.f_fsid.val[1] = mp->mnt_stat.f_type; mp->mnt_flag |= MNT_LOCAL; if(error = dev_dup_plane(devfs_mp_p)) |