Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/ufs The C language does not permit statements of the form
details: https://anonhg.NetBSD.org/src/rev/53a546c7805a
branches: trunk
changeset: 547253:53a546c7805a
user: kristerw <kristerw%NetBSD.org@localhost>
date: Thu May 15 20:25:31 2003 +0000
description:
The C language does not permit statements of the form
(X ? Y : Z) = 0;
even though gcc handles this by a stupid extension.
Transform these to correct C.
Approved by fvdl.
diffstat:
sys/ufs/ffs/ffs_alloc.c | 16 ++++----
sys/ufs/ffs/ffs_inode.c | 38 +++++++++++++---------
sys/ufs/ffs/ffs_softdep.c | 12 +++---
sys/ufs/ufs/inode.h | 30 +++++++++++++----
sys/ufs/ufs/ufs_inode.c | 8 ++--
sys/ufs/ufs/ufs_lookup.c | 14 ++++----
sys/ufs/ufs/ufs_readwrite.c | 8 ++--
sys/ufs/ufs/ufs_vnops.c | 76 ++++++++++++++++++++++----------------------
8 files changed, 112 insertions(+), 90 deletions(-)
diffs (truncated from 729 to 300 lines):
diff -r 78b97255e6d6 -r 53a546c7805a sys/ufs/ffs/ffs_alloc.c
--- a/sys/ufs/ffs/ffs_alloc.c Thu May 15 19:17:43 2003 +0000
+++ b/sys/ufs/ffs/ffs_alloc.c Thu May 15 20:25:31 2003 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_alloc.c,v 1.64 2003/05/04 01:52:18 gmcgarry Exp $ */
+/* $NetBSD: ffs_alloc.c,v 1.65 2003/05/15 20:25:31 kristerw Exp $ */
/*
* Copyright (c) 2002 Networks Associates Technology, Inc.
@@ -45,7 +45,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ffs_alloc.c,v 1.64 2003/05/04 01:52:18 gmcgarry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ffs_alloc.c,v 1.65 2003/05/15 20:25:31 kristerw Exp $");
#if defined(_KERNEL_OPT)
#include "opt_ffs.h"
@@ -179,7 +179,7 @@
bno = ffs_hashalloc(ip, cg, (long)bpref, size,
ffs_alloccg);
if (bno > 0) {
- DIP(ip, blocks) += btodb(size);
+ DIP_ADD(ip, blocks, btodb(size));
ip->i_flag |= IN_CHANGE | IN_UPDATE;
*bnp = bno;
return (0);
@@ -283,7 +283,7 @@
*/
cg = dtog(fs, bprev);
if ((bno = ffs_fragextend(ip, cg, bprev, osize, nsize)) != 0) {
- DIP(ip, blocks) += btodb(nsize - osize);
+ DIP_ADD(ip, blocks, btodb(nsize - osize));
ip->i_flag |= IN_CHANGE | IN_UPDATE;
if (bpp != NULL) {
@@ -364,7 +364,7 @@
if (nsize < request)
ffs_blkfree(ip, bno + numfrags(fs, nsize),
(long)(request - nsize));
- DIP(ip, blocks) += btodb(nsize - osize);
+ DIP_ADD(ip, blocks, btodb(nsize - osize));
ip->i_flag |= IN_CHANGE | IN_UPDATE;
if (bpp != NULL) {
bp->b_blkno = fsbtodb(fs, bno);
@@ -727,16 +727,16 @@
if (DIP(ip, blocks)) { /* XXX */
printf("free inode %s/%d had %" PRId64 " blocks\n",
fs->fs_fsmnt, ino, DIP(ip, blocks));
- DIP(ip, blocks) = 0;
+ DIP_ASSIGN(ip, blocks, 0);
}
ip->i_flag &= ~IN_SPACECOUNTED;
ip->i_flags = 0;
- DIP(ip, flags) = 0;
+ DIP_ASSIGN(ip, flags, 0);
/*
* Set up a new generation number for this inode.
*/
ip->i_gen++;
- DIP(ip, gen) = ip->i_gen;
+ DIP_ASSIGN(ip, gen, ip->i_gen);
if (fs->fs_magic == FS_UFS2_MAGIC) {
TIMEVAL_TO_TIMESPEC(&time, &ts);
ip->i_ffs2_birthtime = ts.tv_sec;
diff -r 78b97255e6d6 -r 53a546c7805a sys/ufs/ffs/ffs_inode.c
--- a/sys/ufs/ffs/ffs_inode.c Thu May 15 19:17:43 2003 +0000
+++ b/sys/ufs/ffs/ffs_inode.c Thu May 15 20:25:31 2003 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_inode.c,v 1.56 2003/04/10 20:02:36 fvdl Exp $ */
+/* $NetBSD: ffs_inode.c,v 1.57 2003/05/15 20:25:32 kristerw Exp $ */
/*
* Copyright (c) 1982, 1986, 1989, 1993
@@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ffs_inode.c,v 1.56 2003/04/10 20:02:36 fvdl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ffs_inode.c,v 1.57 2003/05/15 20:25:32 kristerw Exp $");
#if defined(_KERNEL_OPT)
#include "opt_ffs.h"
@@ -208,7 +208,7 @@
KDASSERT(length == 0);
memset(SHORTLINK(oip), 0, (size_t)oip->i_size);
oip->i_size = 0;
- DIP(oip, size) = 0;
+ DIP_ASSIGN(oip, size, 0);
oip->i_flag |= IN_CHANGE | IN_UPDATE;
return (VOP_UPDATE(ovp, NULL, NULL, UPDATE_WAIT));
}
@@ -330,7 +330,7 @@
}
}
oip->i_size = length;
- DIP(oip, size) = length;
+ DIP_ASSIGN(oip, size, length);
uvm_vnp_setsize(ovp, length);
/*
* Calculate index into inode's block list of
@@ -352,14 +352,14 @@
for (level = TRIPLE; level >= SINGLE; level--) {
oldblks[NDADDR + level] = DIP(oip, ib[level]);
if (lastiblock[level] < 0) {
- DIP(oip, ib[level]) = 0;
+ DIP_ASSIGN(oip, ib[level], 0);
lastiblock[level] = -1;
}
}
for (i = 0; i < NDADDR; i++) {
oldblks[i] = DIP(oip, db[i]);
if (i > lastblock)
- DIP(oip, db[i]) = 0;
+ DIP_ASSIGN(oip, db[i], 0);
}
oip->i_flag |= IN_CHANGE | IN_UPDATE;
error = VOP_UPDATE(ovp, NULL, NULL, UPDATE_WAIT);
@@ -374,15 +374,15 @@
*/
for (i = 0; i < NDADDR; i++) {
newblks[i] = DIP(oip, db[i]);
- DIP(oip, db[i]) = oldblks[i];
+ DIP_ASSIGN(oip, db[i], oldblks[i]);
}
for (i = 0; i < NIADDR; i++) {
newblks[NDADDR + i] = DIP(oip, ib[i]);
- DIP(oip, ib[i]) = oldblks[NDADDR + i];
+ DIP_ASSIGN(oip, ib[i], oldblks[NDADDR + i]);
}
oip->i_size = osize;
- DIP(oip, size) = osize;
+ DIP_ASSIGN(oip, size, osize);
error = vtruncbuf(ovp, lastblock + 1, 0, 0);
if (error && !allerror)
allerror = error;
@@ -405,7 +405,7 @@
allerror = error;
blocksreleased += count;
if (lastiblock[level] < 0) {
- DIP(oip, ib[level]) = 0;
+ DIP_ASSIGN(oip, ib[level], 0);
ffs_blkfree(oip, bn, fs->fs_bsize);
blocksreleased += nblocks;
}
@@ -426,7 +426,7 @@
bn = ufs_rw64(oip->i_ffs2_db[i], UFS_FSNEEDSWAP(fs));
if (bn == 0)
continue;
- DIP(oip, db[i]) = 0;
+ DIP_ASSIGN(oip, db[i], 0);
bsize = blksize(fs, oip, i);
ffs_blkfree(oip, bn, bsize);
blocksreleased += btodb(bsize);
@@ -451,7 +451,7 @@
*/
oldspace = blksize(fs, oip, lastblock);
oip->i_size = length;
- DIP(oip, size) = length;
+ DIP_ASSIGN(oip, size, length);
newspace = blksize(fs, oip, lastblock);
if (newspace == 0)
panic("itrunc: newspace");
@@ -483,8 +483,8 @@
* Put back the real size.
*/
oip->i_size = length;
- DIP(oip, size) = length;
- DIP(oip, blocks) -= blocksreleased;
+ DIP_ASSIGN(oip, size, length);
+ DIP_ADD(oip, blocks, -blocksreleased);
lockmgr(&gp->g_glock, LK_RELEASE, NULL);
oip->i_flag |= IN_CHANGE;
#ifdef QUOTA
@@ -527,7 +527,13 @@
#endif
#define RBAP(ip, i) (((ip)->i_ump->um_fstype == UFS1) ? \
ufs_rw32(bap1[i], needswap) : ufs_rw64(bap2[i], needswap))
-#define BAP(ip, i) (((ip)->i_ump->um_fstype == UFS1) ? bap1[i] : bap2[i])
+#define BAP_ASSIGN(ip, i, value) \
+ do { \
+ if ((ip)->i_ump->um_fstype == UFS1) \
+ bap1[i] = (value); \
+ else \
+ bap2[i] = (value); \
+ } while(0)
/*
* Calculate index in current block of last
@@ -578,7 +584,7 @@
copy = malloc(fs->fs_bsize, M_TEMP, M_WAITOK);
memcpy((caddr_t)copy, bp->b_data, (u_int)fs->fs_bsize);
for (i = last + 1; i < NINDIR(fs); i++)
- BAP(ip, i) = 0;
+ BAP_ASSIGN(ip, i, 0);
error = bwrite(bp);
if (error)
allerror = error;
diff -r 78b97255e6d6 -r 53a546c7805a sys/ufs/ffs/ffs_softdep.c
--- a/sys/ufs/ffs/ffs_softdep.c Thu May 15 19:17:43 2003 +0000
+++ b/sys/ufs/ffs/ffs_softdep.c Thu May 15 20:25:31 2003 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs_softdep.c,v 1.46 2003/04/03 19:28:07 fvdl Exp $ */
+/* $NetBSD: ffs_softdep.c,v 1.47 2003/05/15 20:25:32 kristerw Exp $ */
/*
* Copyright 1998 Marshall Kirk McKusick. All Rights Reserved.
@@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ffs_softdep.c,v 1.46 2003/04/03 19:28:07 fvdl Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ffs_softdep.c,v 1.47 2003/05/15 20:25:32 kristerw Exp $");
#include <sys/param.h>
#include <sys/buf.h>
@@ -1908,9 +1908,9 @@
ip->i_ffs2_ib[i] = 0;
}
}
- DIP(ip, blocks) = 0;
+ DIP_ASSIGN(ip, blocks, 0);
ip->i_size = 0;
- DIP(ip, size) = 0;
+ DIP_ASSIGN(ip, size, 0);
/*
* If the file was removed, then the space being freed was
* accounted for then (see softdep_filereleased()). If the
@@ -3174,7 +3174,7 @@
*/
if ((dirrem->dm_state & RMDIR) == 0) {
ip->i_nlink--;
- DIP(ip, nlink) = ip->i_nlink;
+ DIP_ASSIGN(ip, nlink, ip->i_nlink);
ip->i_flag |= IN_CHANGE;
if (ip->i_nlink < ip->i_ffs_effnlink)
panic("handle_workitem_remove: bad file delta");
@@ -3193,7 +3193,7 @@
* the parent decremented to account for the loss of "..".
*/
ip->i_nlink -= 2;
- DIP(ip, nlink) -= 2;
+ DIP_ADD(ip, nlink, -2);
ip->i_flag |= IN_CHANGE;
if (ip->i_nlink < ip->i_ffs_effnlink)
panic("handle_workitem_remove: bad dir delta");
diff -r 78b97255e6d6 -r 53a546c7805a sys/ufs/ufs/inode.h
--- a/sys/ufs/ufs/inode.h Thu May 15 19:17:43 2003 +0000
+++ b/sys/ufs/ufs/inode.h Thu May 15 20:25:31 2003 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: inode.h,v 1.34 2003/04/02 10:39:43 fvdl Exp $ */
+/* $NetBSD: inode.h,v 1.35 2003/05/15 20:25:33 kristerw Exp $ */
/*
* Copyright (c) 1982, 1989, 1993
@@ -225,6 +225,22 @@
(((ip)->i_ump->um_fstype == UFS1) ? \
(ip)->i_ffs1_##field : (ip)->i_ffs2_##field)
+#define DIP_ASSIGN(ip, field, value) \
+ do { \
+ if ((ip)->i_ump->um_fstype == 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 == UFS1) \
+ (ip)->i_ffs1_##field += (value); \
+ else \
+ (ip)->i_ffs2_##field += (value); \
+ } while(0)
+
#define SHORTLINK(ip) \
(((ip)->i_ump->um_fstype == UFS1) ? \
(caddr_t)(ip)->i_ffs1_db : (caddr_t)(ip)->i_ffs2_db)
@@ -247,19 +263,19 @@
#define FFS_ITIMES(ip, acc, mod, cre) { \
if ((ip)->i_flag & (IN_ACCESS | IN_CHANGE | IN_UPDATE)) { \
if ((ip)->i_flag & IN_ACCESS) { \
- DIP(ip, atime) = (acc)->tv_sec; \
- DIP(ip, atimensec) = (acc)->tv_nsec; \
+ DIP_ASSIGN(ip, atime, (acc)->tv_sec); \
+ DIP_ASSIGN(ip, atimensec, (acc)->tv_nsec); \
(ip)->i_flag |= IN_ACCESSED; \
} \
if ((ip)->i_flag & IN_UPDATE) { \
- DIP(ip, mtime) = (mod)->tv_sec; \
- DIP(ip, mtimensec) = (mod)->tv_nsec; \
+ DIP_ASSIGN(ip, mtime, (mod)->tv_sec); \
+ DIP_ASSIGN(ip, mtimensec, (mod)->tv_nsec); \
(ip)->i_modrev++; \
(ip)->i_flag |= IN_MODIFIED; \
} \
if ((ip)->i_flag & IN_CHANGE) { \
- DIP(ip, ctime) = (cre)->tv_sec; \
- DIP(ip, ctimensec) = (cre)->tv_nsec; \
Home |
Main Index |
Thread Index |
Old Index