diff options
Diffstat (limited to 'sys/ufs/ffs/ffs_vfsops.c')
-rw-r--r-- | sys/ufs/ffs/ffs_vfsops.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c index 6250975..31c5486 100644 --- a/sys/ufs/ffs/ffs_vfsops.c +++ b/sys/ufs/ffs/ffs_vfsops.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)ffs_vfsops.c 8.31 (Berkeley) 5/20/95 - * $Id: ffs_vfsops.c,v 1.49 1997/03/22 06:53:30 bde Exp $ + * $Id: ffs_vfsops.c,v 1.50 1997/03/23 03:37:34 bde Exp $ */ #include "opt_quota.h" @@ -92,8 +92,6 @@ struct vfsops ufs_vfsops = { VFS_SET(ufs_vfsops, ufs, MOUNT_UFS, 0); -extern u_long nextgennumber; - /* * ffs_mount * @@ -585,7 +583,10 @@ ffs_mountfs(devvp, mp, p) } mp->mnt_data = (qaddr_t)ump; mp->mnt_stat.f_fsid.val[0] = (long)dev; - mp->mnt_stat.f_fsid.val[1] = mp->mnt_vfc->vfc_typenum; + if (fs->fs_id[0] != 0 && fs->fs_id[1] != 0) + mp->mnt_stat.f_fsid.val[1] = fs->fs_id[1]; + else + mp->mnt_stat.f_fsid.val[1] = mp->mnt_vfc->vfc_typenum; mp->mnt_maxsymlinklen = fs->fs_maxsymlinklen; mp->mnt_flag |= MNT_LOCAL; ump->um_mountp = mp; @@ -1015,9 +1016,7 @@ restart: * already have one. This should only happen on old filesystems. */ if (ip->i_gen == 0) { - if (++nextgennumber < (u_long)time.tv_sec) - nextgennumber = time.tv_sec; - ip->i_gen = nextgennumber; + ip->i_gen = random() / 2 + 1; if ((vp->v_mount->mnt_flag & MNT_RDONLY) == 0) ip->i_flag |= IN_MODIFIED; } |