diff options
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/vfs_export.c | 9 | ||||
-rw-r--r-- | sys/kern/vfs_subr.c | 9 | ||||
-rw-r--r-- | sys/kern/vfs_vnops.c | 7 |
3 files changed, 15 insertions, 10 deletions
diff --git a/sys/kern/vfs_export.c b/sys/kern/vfs_export.c index 579d214..8357241 100644 --- a/sys/kern/vfs_export.c +++ b/sys/kern/vfs_export.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95 - * $Id: vfs_subr.c,v 1.203 1999/06/26 02:46:10 mckusick Exp $ + * $Id: vfs_subr.c,v 1.204 1999/07/01 13:21:41 peter Exp $ */ /* @@ -333,16 +333,17 @@ vfs_getnewfsid(mp) simple_lock(&mntid_slock); mtype = mp->mnt_vfc->vfc_typenum; - mp->mnt_stat.f_fsid.val[0] = (256 + mtype) * 256; + mp->mnt_stat.f_fsid.val[0] = umakedev(255, mtype); mp->mnt_stat.f_fsid.val[1] = mtype; if (xxxfs_mntid == 0) ++xxxfs_mntid; - tfsid.val[0] = (256 + mtype) * 256 | xxxfs_mntid; + tfsid.val[0] = umakedev(255, mtype + (xxxfs_mntid << 16)); tfsid.val[1] = mtype; if (mountlist.cqh_first != (void *)&mountlist) { while (vfs_getvfs(&tfsid)) { - tfsid.val[0]++; xxxfs_mntid++; + tfsid.val[0] = umakedev(255, + mtype + (xxxfs_mntid << 16)); } } mp->mnt_stat.f_fsid.val[0] = tfsid.val[0]; diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index 579d214..8357241 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)vfs_subr.c 8.31 (Berkeley) 5/26/95 - * $Id: vfs_subr.c,v 1.203 1999/06/26 02:46:10 mckusick Exp $ + * $Id: vfs_subr.c,v 1.204 1999/07/01 13:21:41 peter Exp $ */ /* @@ -333,16 +333,17 @@ vfs_getnewfsid(mp) simple_lock(&mntid_slock); mtype = mp->mnt_vfc->vfc_typenum; - mp->mnt_stat.f_fsid.val[0] = (256 + mtype) * 256; + mp->mnt_stat.f_fsid.val[0] = umakedev(255, mtype); mp->mnt_stat.f_fsid.val[1] = mtype; if (xxxfs_mntid == 0) ++xxxfs_mntid; - tfsid.val[0] = (256 + mtype) * 256 | xxxfs_mntid; + tfsid.val[0] = umakedev(255, mtype + (xxxfs_mntid << 16)); tfsid.val[1] = mtype; if (mountlist.cqh_first != (void *)&mountlist) { while (vfs_getvfs(&tfsid)) { - tfsid.val[0]++; xxxfs_mntid++; + tfsid.val[0] = umakedev(255, + mtype + (xxxfs_mntid << 16)); } } mp->mnt_stat.f_fsid.val[0] = tfsid.val[0]; diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c index 0300ba5..8a520d3 100644 --- a/sys/kern/vfs_vnops.c +++ b/sys/kern/vfs_vnops.c @@ -36,7 +36,7 @@ * SUCH DAMAGE. * * @(#)vfs_vnops.c 8.2 (Berkeley) 1/21/94 - * $Id: vfs_vnops.c,v 1.67 1999/04/27 11:16:27 phk Exp $ + * $Id: vfs_vnops.c,v 1.68 1999/04/28 11:37:12 phk Exp $ */ #include <sys/param.h> @@ -378,7 +378,10 @@ vn_stat(vp, sb, p) /* * Copy from vattr table */ - sb->st_dev = vap->va_fsid; + if (vap->va_fsid != VNOVAL) + sb->st_dev = vap->va_fsid; + else + sb->st_dev = vp->v_mount->mnt_stat.f_fsid.val[0]; sb->st_ino = vap->va_fileid; mode = vap->va_mode; switch (vap->va_type) { |