diff options
author | 2005-12-19 15:18:01 +0000 | |
---|---|---|
committer | 2005-12-19 15:18:01 +0000 | |
commit | 60221941d0da10d16fa78f32ef21a03cae602181 (patch) | |
tree | ffea3e9ec45246ca7a5706f4915fb799cb8145dc | |
parent | r.i.p. libresolv (diff) | |
download | wireguard-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.c | 6 | ||||
-rw-r--r-- | sbin/fsck_ffs/setup.c | 10 | ||||
-rw-r--r-- | sbin/fsdb/fsdbutil.c | 6 | ||||
-rw-r--r-- | sbin/growfs/growfs.c | 7 | ||||
-rw-r--r-- | sbin/newfs/mkfs.c | 6 | ||||
-rw-r--r-- | sbin/newlfs/lfs.c | 6 | ||||
-rw-r--r-- | sys/ufs/ufs/dinode.h | 12 | ||||
-rw-r--r-- | sys/ufs/ufs/inode.h | 53 |
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 |