summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpedro <pedro@openbsd.org>2005-12-19 15:18:01 +0000
committerpedro <pedro@openbsd.org>2005-12-19 15:18:01 +0000
commit60221941d0da10d16fa78f32ef21a03cae602181 (patch)
treeffea3e9ec45246ca7a5706f4915fb799cb8145dc
parentr.i.p. libresolv (diff)
downloadwireguard-openbsd-60221941d0da10d16fa78f32ef21a03cae602181.tar.xz
wireguard-openbsd-60221941d0da10d16fa78f32ef21a03cae602181.zip
Add and use a few more constants and macros needed by UFS2
No functional change
-rw-r--r--sbin/fsck_ffs/pass1.c6
-rw-r--r--sbin/fsck_ffs/setup.c10
-rw-r--r--sbin/fsdb/fsdbutil.c6
-rw-r--r--sbin/growfs/growfs.c7
-rw-r--r--sbin/newfs/mkfs.c6
-rw-r--r--sbin/newlfs/lfs.c6
-rw-r--r--sys/ufs/ufs/dinode.h12
-rw-r--r--sys/ufs/ufs/inode.h53
8 files changed, 69 insertions, 37 deletions
diff --git a/sbin/fsck_ffs/pass1.c b/sbin/fsck_ffs/pass1.c
index 1c00810d712..f2ae3eca02b 100644
--- a/sbin/fsck_ffs/pass1.c
+++ b/sbin/fsck_ffs/pass1.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pass1.c,v 1.17 2005/04/16 18:15:41 millert Exp $ */
+/* $OpenBSD: pass1.c,v 1.18 2005/12/19 15:18:01 pedro Exp $ */
/* $NetBSD: pass1.c,v 1.16 1996/09/27 22:45:15 christos Exp $ */
/*
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)pass1.c 8.1 (Berkeley) 6/5/93";
#else
-static const char rcsid[] = "$OpenBSD: pass1.c,v 1.17 2005/04/16 18:15:41 millert Exp $";
+static const char rcsid[] = "$OpenBSD: pass1.c,v 1.18 2005/12/19 15:18:01 pedro Exp $";
#endif
#endif /* not lint */
@@ -167,7 +167,7 @@ checkinode(ino_t inumber, struct inodesc *idesc)
* conversion altogether. - mycroft, 19MAY1994
*/
if (doinglevel2 &&
- dp->di_size > 0 && dp->di_size < MAXSYMLINKLEN &&
+ dp->di_size > 0 && dp->di_size < MAXSYMLINKLEN_UFS1 &&
dp->di_blocks != 0) {
symbuf = alloca(secsize);
if (bread(fsreadfd, symbuf,
diff --git a/sbin/fsck_ffs/setup.c b/sbin/fsck_ffs/setup.c
index 7857a591299..2c6e0a75952 100644
--- a/sbin/fsck_ffs/setup.c
+++ b/sbin/fsck_ffs/setup.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: setup.c,v 1.21 2003/09/25 04:19:39 deraadt Exp $ */
+/* $OpenBSD: setup.c,v 1.22 2005/12/19 15:18:01 pedro Exp $ */
/* $NetBSD: setup.c,v 1.27 1996/09/27 22:45:19 christos Exp $ */
/*
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)setup.c 8.5 (Berkeley) 11/23/94";
#else
-static const char rcsid[] = "$OpenBSD: setup.c,v 1.21 2003/09/25 04:19:39 deraadt Exp $";
+static const char rcsid[] = "$OpenBSD: setup.c,v 1.22 2005/12/19 15:18:01 pedro Exp $";
#endif
#endif /* not lint */
@@ -241,10 +241,10 @@ setup(char *dev)
dirty(&asblk);
}
}
- if (sblock.fs_maxsymlinklen != MAXSYMLINKLEN) {
+ if (sblock.fs_maxsymlinklen != MAXSYMLINKLEN_UFS1) {
pwarn("INCORRECT MAXSYMLINKLEN=%d IN SUPERBLOCK",
sblock.fs_maxsymlinklen);
- sblock.fs_maxsymlinklen = MAXSYMLINKLEN;
+ sblock.fs_maxsymlinklen = MAXSYMLINKLEN_UFS1;
if (preen)
printf(" (FIXED)\n");
if (preen || reply("FIX") == 1) {
@@ -291,7 +291,7 @@ setup(char *dev)
doinglevel2++;
sblock.fs_inodefmt = FS_44INODEFMT;
sblock.fs_maxfilesize = maxfilesize;
- sblock.fs_maxsymlinklen = MAXSYMLINKLEN;
+ sblock.fs_maxsymlinklen = MAXSYMLINKLEN_UFS1;
sblock.fs_qbmask = ~sblock.fs_bmask;
sblock.fs_qfmask = ~sblock.fs_fmask;
sbdirty();
diff --git a/sbin/fsdb/fsdbutil.c b/sbin/fsdb/fsdbutil.c
index f00bf4d6409..7db4aae82f1 100644
--- a/sbin/fsdb/fsdbutil.c
+++ b/sbin/fsdb/fsdbutil.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: fsdbutil.c,v 1.10 2003/08/25 23:28:15 tedu Exp $ */
+/* $OpenBSD: fsdbutil.c,v 1.11 2005/12/19 15:18:01 pedro Exp $ */
/* $NetBSD: fsdbutil.c,v 1.5 1996/09/28 19:30:37 christos Exp $ */
/*-
@@ -38,7 +38,7 @@
*/
#ifndef lint
-static char rcsid[] = "$OpenBSD: fsdbutil.c,v 1.10 2003/08/25 23:28:15 tedu Exp $";
+static char rcsid[] = "$OpenBSD: fsdbutil.c,v 1.11 2005/12/19 15:18:01 pedro Exp $";
#endif /* not lint */
#include <sys/types.h>
@@ -119,7 +119,7 @@ printstat(const char *cp, ino_t inum, struct ufs1_dinode *dp)
break;
case IFLNK:
fputs("symlink",stdout);
- if (dp->di_size > 0 && dp->di_size < MAXSYMLINKLEN &&
+ if (dp->di_size > 0 && dp->di_size < MAXSYMLINKLEN_UFS1 &&
dp->di_blocks == 0)
printf(" to `%.*s'\n", (int) dp->di_size,
(char *)dp->di_shortlink);
diff --git a/sbin/growfs/growfs.c b/sbin/growfs/growfs.c
index 73ac3549050..e0b0c863cfb 100644
--- a/sbin/growfs/growfs.c
+++ b/sbin/growfs/growfs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: growfs.c,v 1.12 2005/04/14 19:58:32 deraadt Exp $ */
+/* $OpenBSD: growfs.c,v 1.13 2005/12/19 15:18:01 pedro Exp $ */
/*
* Copyright (c) 2000 Christoph Herrmann, Thomas-Henning von Kamptz
* Copyright (c) 1980, 1989, 1993 The Regents of the University of California.
@@ -46,7 +46,7 @@ static const char copyright[] =
Copyright (c) 1980, 1989, 1993 The Regents of the University of California.\n\
All rights reserved.\n";
-static const char rcsid[] = "$OpenBSD: growfs.c,v 1.12 2005/04/14 19:58:32 deraadt Exp $";
+static const char rcsid[] = "$OpenBSD: growfs.c,v 1.13 2005/12/19 15:18:01 pedro Exp $";
#endif /* not lint */
/* ********************************************************** INCLUDES ***** */
@@ -2243,7 +2243,8 @@ updrefs(int cg, ino_t in, struct gfs_bpp *bp, int fsi, int fso, unsigned int
DBG_LEAVE;
return; /* only check DIR, FILE, LINK */
}
- if (((ino->di_mode & IFMT) == IFLNK) && (ino->di_size < MAXSYMLINKLEN)) {
+ if (((ino->di_mode & IFMT) == IFLNK) &&
+ (ino->di_size < MAXSYMLINKLEN_UFS1)) {
DBG_LEAVE;
return; /* skip short symlinks */
}
diff --git a/sbin/newfs/mkfs.c b/sbin/newfs/mkfs.c
index d13b639305c..1c7629e0b97 100644
--- a/sbin/newfs/mkfs.c
+++ b/sbin/newfs/mkfs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mkfs.c,v 1.48 2005/08/08 20:27:22 otto Exp $ */
+/* $OpenBSD: mkfs.c,v 1.49 2005/12/19 15:18:01 pedro Exp $ */
/* $NetBSD: mkfs.c,v 1.25 1995/06/18 21:35:38 cgd Exp $ */
/*
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)mkfs.c 8.3 (Berkeley) 2/3/94";
#else
-static char rcsid[] = "$OpenBSD: mkfs.c,v 1.48 2005/08/08 20:27:22 otto Exp $";
+static char rcsid[] = "$OpenBSD: mkfs.c,v 1.49 2005/12/19 15:18:01 pedro Exp $";
#endif
#endif /* not lint */
@@ -201,7 +201,7 @@ mkfs(struct partition *pp, char *fsys, int fi, int fo,
sblock.fs_maxsymlinklen = 0;
} else {
sblock.fs_inodefmt = FS_44INODEFMT;
- sblock.fs_maxsymlinklen = MAXSYMLINKLEN;
+ sblock.fs_maxsymlinklen = MAXSYMLINKLEN_UFS1;
}
/*
* Validate the given file system size.
diff --git a/sbin/newlfs/lfs.c b/sbin/newlfs/lfs.c
index def2fc304fd..504348a96dc 100644
--- a/sbin/newlfs/lfs.c
+++ b/sbin/newlfs/lfs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: lfs.c,v 1.9 2004/07/17 02:14:33 deraadt Exp $ */
+/* $OpenBSD: lfs.c,v 1.10 2005/12/19 15:18:01 pedro Exp $ */
/* $NetBSD: lfs.c,v 1.8 1995/06/19 21:30:36 cgd Exp $ */
/*-
@@ -34,7 +34,7 @@
#if 0
static char sccsid[] = "@(#)lfs.c 8.5 (Berkeley) 5/24/95";
#else
-static char rcsid[] = "$OpenBSD: lfs.c,v 1.9 2004/07/17 02:14:33 deraadt Exp $";
+static char rcsid[] = "$OpenBSD: lfs.c,v 1.10 2005/12/19 15:18:01 pedro Exp $";
#endif
#endif /* not lint */
@@ -130,7 +130,7 @@ static struct lfs lfs_default = {
/* lfs_fbshift */ DFL_LFS_FBSHIFT,
/* lfs_fsbtodb */ 0,
/* lfs_sushift */ 0,
- /* lfs_maxsymlinklen */ MAXSYMLINKLEN,
+ /* lfs_maxsymlinklen */ MAXSYMLINKLEN_UFS1,
/* lfs_sboffs */ { 0 },
/* lfs_cksum */ 0,
/* lfs_sp */ NULL,
diff --git a/sys/ufs/ufs/dinode.h b/sys/ufs/ufs/dinode.h
index 125d4cba69c..b8254abede3 100644
--- a/sys/ufs/ufs/dinode.h
+++ b/sys/ufs/ufs/dinode.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: dinode.h,v 1.10 2005/06/18 18:09:43 millert Exp $ */
+/* $OpenBSD: dinode.h,v 1.11 2005/12/19 15:18:01 pedro Exp $ */
/* $NetBSD: dinode.h,v 1.7 1995/06/15 23:22:48 cgd Exp $ */
/*
@@ -65,7 +65,6 @@ typedef int64_t ufs_time_t;
#define NDADDR 12 /* Direct addresses in inode. */
#define NIADDR 3 /* Indirect addresses in inode. */
-
struct ufs1_dinode {
u_int16_t di_mode; /* 0: IFMT, permissions; see below. */
int16_t di_nlink; /* 2: File link count. */
@@ -116,7 +115,6 @@ struct ufs2_dinode {
int64_t di_spare[3]; /* 232: Reserved; currently unused */
};
-
/*
* The di_db fields may be overlaid with other information for
* file types that do not have associated disk storage. Block
@@ -129,7 +127,13 @@ struct ufs2_dinode {
#define di_ouid di_u.oldids[0]
#define di_rdev di_db[0]
#define di_shortlink di_db
-#define MAXSYMLINKLEN ((NDADDR + NIADDR) * sizeof(ufs1_daddr_t))
+
+#define MAXSYMLINKLEN_UFS1 ((NDADDR + NIADDR) * sizeof(ufs1_daddr_t))
+#define MAXSYMLINKLEN_UFS2 ((NDADDR + NIADDR) * sizeof(ufs2_daddr_t))
+
+#define MAXSYMLINKLEN(ip) \
+ ((ip)->i_ump->um_fstype == UM_UFS1) ? \
+ MAXSYMLINKLEN_UFS1 : MAXSYMLINKLEN_UFS2
/* File permissions. */
#define IEXEC 0000100 /* Executable. */
diff --git a/sys/ufs/ufs/inode.h b/sys/ufs/ufs/inode.h
index 793fddd86d9..37ad1ab1a1c 100644
--- a/sys/ufs/ufs/inode.h
+++ b/sys/ufs/ufs/inode.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: inode.h,v 1.30 2005/12/17 13:56:01 pedro Exp $ */
+/* $OpenBSD: inode.h,v 1.31 2005/12/19 15:18:02 pedro Exp $ */
/* $NetBSD: inode.h,v 1.8 1995/06/15 23:22:50 cgd Exp $ */
/*
@@ -161,7 +161,6 @@ struct inode_vtbl {
#define UFS_BUFATOFF(ip, offset, res, bpp) \
((ip)->i_vtbl->iv_bufatoff)((ip), (offset), (res), (bpp))
-
#define i_ffs_atime i_din1->di_atime
#define i_ffs_atimensec i_din1->di_atimensec
#define i_ffs_blocks i_din1->di_blocks
@@ -180,7 +179,26 @@ struct inode_vtbl {
#define i_ffs_shortlink i_din1->di_shortlink
#define i_ffs_size i_din1->di_size
#define i_ffs_uid i_din1->di_uid
-#define i_size i_din1->di_size
+#define i_size i_din1->di_size
+
+#define i_ffs2_atime i_din.ffs2_din->di_atime
+#define i_ffs2_atimensec i_din.ffs2_din->di_atimensec
+#define i_ffs2_blocks i_din.ffs2_din->di_blocks
+#define i_ffs2_blksize i_din.ffs2_din->di_blksize
+#define i_ffs2_ctime i_din.ffs2_din->di_ctime
+#define i_ffs2_ctimensec i_din.ffs2_din->di_ctimensec
+#define i_ffs2_db i_din.ffs2_din->di_db
+#define i_ffs2_flags i_din.ffs2_din->di_flags
+#define i_ffs2_gen i_din.ffs2_din->di_gen
+#define i_ffs2_gid i_din.ffs2_din->di_gid
+#define i_ffs2_ib i_din.ffs2_din->di_ib
+#define i_ffs2_mode i_din.ffs2_din->di_mode
+#define i_ffs2_mtime i_din.ffs2_din->di_mtime
+#define i_ffs2_mtimensec i_din.ffs2_din->di_mtimensec
+#define i_ffs2_nlink i_din.ffs2_din->di_nlink
+#define i_ffs2_rdev i_din.ffs2_din->di_rdev
+#define i_ffs2_size i_din.ffs2_din->di_size
+#define i_ffs2_uid i_din.ffs2_din->di_uid
#ifndef _KERNEL
/*
@@ -242,22 +260,31 @@ struct inode_vtbl {
#ifdef _KERNEL
/*
- * The DIP macro is used to access fields in the dinode that are
- * not cached in the inode itself.
+ * The DIP macros are used to access fields in the dinode.
*/
-#define DIP(ip, field) \
+#define DIP(ip, field) \
(((ip)->i_ump->um_fstype == UM_UFS1) ? \
(ip)->i_din1->d##field : (ip)->i_din2->d##field)
-#if 0
-#define MAXSYMLINKLEN(ip) \
- ((ip)->i_ump->um_fstype == UM_UFS1) ? \
- ((NDADDR + NIADDR) * sizeof(ufs1_daddr_t)) : \
- ((NDADDR + NIADDR) * sizeof(ufs2_daddr_t))
-#define SHORTLINK(ip) \
+#define DIP_ASSIGN(ip, field, value) \
+ do { \
+ if ((ip)->i_ump->um_fstype == UM_UFS1) \
+ (ip)->i_ffs1_##field = (value); \
+ else \
+ (ip)->i_ffs2_##field = (value); \
+ } while (0)
+
+#define DIP_ADD(ip, field, value) \
+ do { \
+ if ((ip)->i_ump->um_fstype == UM_UFS1) \
+ (ip)->i_ffs1_##field += (value); \
+ else \
+ (ip)->i_ffs2_##field += (value); \
+ } while (0)
+
+#define SHORTLINK(ip) \
(((ip)->i_ump->um_fstype == UM_UFS1) ? \
(caddr_t)(ip)->i_din1->di_db : (caddr_t)(ip)->i_din2->di_db)
-#endif
/*
* Structure used to pass around logical block paths generated by