summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>1999-07-11 19:16:50 +0000
committerphk <phk@FreeBSD.org>1999-07-11 19:16:50 +0000
commitf94fffca16a77c2effb6fd0402c32cdfe406274f (patch)
tree2bfafd5024a5d9fb1ad262ef94bf1f90ad1aa82f
parenta9a930f77ff5e7ded8c34e21a382d206d58ee7cf (diff)
downloadFreeBSD-src-f94fffca16a77c2effb6fd0402c32cdfe406274f.zip
FreeBSD-src-f94fffca16a77c2effb6fd0402c32cdfe406274f.tar.gz
Use the fsid from the superblock, unless it looks bogus or has already
been taken by some other filesystem.
-rw-r--r--sys/ufs/ffs/ffs_vfsops.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/ufs/ffs/ffs_vfsops.c b/sys/ufs/ffs/ffs_vfsops.c
index d8d5e7f..0e1abab 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.98 1999/05/08 06:40:22 phk Exp $
+ * $Id: ffs_vfsops.c,v 1.99 1999/05/31 11:29:24 phk Exp $
*/
#include "opt_quota.h"
@@ -709,11 +709,11 @@ ffs_mountfs(devvp, mp, p, malloctype)
*lp++ = fs->fs_contigsumsize;
}
mp->mnt_data = (qaddr_t)ump;
- mp->mnt_stat.f_fsid.val[0] = (long)dev;
- 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_stat.f_fsid.val[0] = fs->fs_id[0];
+ mp->mnt_stat.f_fsid.val[1] = fs->fs_id[1];
+ if (fs->fs_id[0] == 0 || fs->fs_id[1] == 0 ||
+ vfs_getvfs(&mp->mnt_stat.f_fsid))
+ vfs_getnewfsid(mp);
mp->mnt_maxsymlinklen = fs->fs_maxsymlinklen;
mp->mnt_flag |= MNT_LOCAL;
ump->um_mountp = mp;
OpenPOWER on IntegriCloud