Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src From Michael Plass:
details: https://anonhg.NetBSD.org/src/rev/b25a1874493c
branches: trunk
changeset: 346689:b25a1874493c
user: martin <martin%NetBSD.org@localhost>
date: Thu Jul 28 08:24:58 2016 +0000
description:
>From Michael Plass:
The superblock field that distinguishes between 4.2BSD and 4.4BSD
inodes is really only relevant on a UFS1 file system. Make sure that
it is a UFS1 fs before using fs_old_inodefmt.
Note that the NetBSD newfs and mkfs utilities initialize fs_old_inodefmt
even for UFS2, so problems were apparent only on file systems created
by other operating systems, for example, FreeBSD.
diffstat:
sbin/fsdb/fsdb.c | 6 +++---
sys/ufs/ffs/ffs_vfsops.c | 10 ++++++----
usr.sbin/quot/quot.c | 7 ++++---
3 files changed, 13 insertions(+), 10 deletions(-)
diffs (93 lines):
diff -r 400e9c5bf448 -r b25a1874493c sbin/fsdb/fsdb.c
--- a/sbin/fsdb/fsdb.c Thu Jul 28 07:54:31 2016 +0000
+++ b/sbin/fsdb/fsdb.c Thu Jul 28 08:24:58 2016 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: fsdb.c,v 1.48 2013/06/23 02:06:04 dholland Exp $ */
+/* $NetBSD: fsdb.c,v 1.49 2016/07/28 08:24:58 martin Exp $ */
/*-
* Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: fsdb.c,v 1.48 2013/06/23 02:06:04 dholland Exp $");
+__RCSID("$NetBSD: fsdb.c,v 1.49 2016/07/28 08:24:58 martin Exp $");
#endif /* not lint */
#include <sys/types.h>
@@ -1232,7 +1232,7 @@
return 1;
}
}
- if (sblock->fs_old_inodefmt < FS_44INODEFMT)
+ if (!is_ufs2 && sblock->fs_old_inodefmt < FS_44INODEFMT)
curinode->dp1.di_ogid = iswap32(gid);
else
DIP_SET(curinode, gid, iswap32(gid));
diff -r 400e9c5bf448 -r b25a1874493c sys/ufs/ffs/ffs_vfsops.c
--- a/sys/ufs/ffs/ffs_vfsops.c Thu Jul 28 07:54:31 2016 +0000
+++ b/sys/ufs/ffs/ffs_vfsops.c Thu Jul 28 08:24:58 2016 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_vfsops.c,v 1.339 2016/06/19 22:41:31 christos Exp $ */
+/* $NetBSD: ffs_vfsops.c,v 1.340 2016/07/28 08:24:58 martin Exp $ */
/*-
* Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -61,7 +61,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ffs_vfsops.c,v 1.339 2016/06/19 22:41:31 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ffs_vfsops.c,v 1.340 2016/07/28 08:24:58 martin Exp $");
#if defined(_KERNEL_OPT)
#include "opt_ffs.h"
@@ -1605,7 +1605,8 @@
fs->fs_old_trackskew = 0;
}
- if (fs->fs_old_inodefmt < FS_44INODEFMT) {
+ if (fs->fs_magic == FS_UFS1_MAGIC &&
+ fs->fs_old_inodefmt < FS_44INODEFMT) {
fs->fs_maxfilesize = (u_quad_t) 1LL << 39;
fs->fs_qbmask = ~fs->fs_bmask;
fs->fs_qfmask = ~fs->fs_fmask;
@@ -2092,7 +2093,8 @@
* fix until fsck has been changed to do the update.
*/
- if (fs->fs_old_inodefmt < FS_44INODEFMT) { /* XXX */
+ if (fs->fs_magic == FS_UFS1_MAGIC && /* XXX */
+ fs->fs_old_inodefmt < FS_44INODEFMT) { /* XXX */
ip->i_uid = ip->i_ffs1_ouid; /* XXX */
ip->i_gid = ip->i_ffs1_ogid; /* XXX */
} /* XXX */
diff -r 400e9c5bf448 -r b25a1874493c usr.sbin/quot/quot.c
--- a/usr.sbin/quot/quot.c Thu Jul 28 07:54:31 2016 +0000
+++ b/usr.sbin/quot/quot.c Thu Jul 28 08:24:58 2016 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: quot.c,v 1.33 2013/10/19 17:16:38 christos Exp $ */
+/* $NetBSD: quot.c,v 1.34 2016/07/28 08:24:58 martin Exp $ */
/*
* Copyright (C) 1991, 1994 Wolfgang Solfrank.
@@ -33,7 +33,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: quot.c,v 1.33 2013/10/19 17:16:38 christos Exp $");
+__RCSID("$NetBSD: quot.c,v 1.34 2016/07/28 08:24:58 martin Exp $");
#endif /* not lint */
#include <sys/param.h>
@@ -521,7 +521,8 @@
{
int i;
- if (fs->fs_old_inodefmt < FS_44INODEFMT) {
+ if (fs->fs_magic == FS_UFS1_MAGIC &&
+ fs->fs_old_inodefmt < FS_44INODEFMT) {
quad_t sizepb = fs->fs_bsize;
fs->fs_maxfilesize = fs->fs_bsize * UFS_NDADDR - 1;
Home |
Main Index |
Thread Index |
Old Index