diff options
author | kan <kan@FreeBSD.org> | 2004-07-28 06:41:27 +0000 |
---|---|---|
committer | kan <kan@FreeBSD.org> | 2004-07-28 06:41:27 +0000 |
commit | 586367666db6acf703bf5135bb74bb3a490b5de2 (patch) | |
tree | 8dcb27436e9b802f1fcb3932069f9411a04bba6b /sys/ufs/ffs/ffs_inode.c | |
parent | 7a2c503e1b6f63cf58059c4c57f2d7e24577c923 (diff) | |
download | FreeBSD-src-586367666db6acf703bf5135bb74bb3a490b5de2.zip FreeBSD-src-586367666db6acf703bf5135bb74bb3a490b5de2.tar.gz |
Avoid using casts as lvalues. Introduce DIP_SET macro which sets proper
inode field based on UFS version. Use DIP ro read values and DIP_SET
to modify them throughout FFS code base.
Diffstat (limited to 'sys/ufs/ffs/ffs_inode.c')
-rw-r--r-- | sys/ufs/ffs/ffs_inode.c | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/sys/ufs/ffs/ffs_inode.c b/sys/ufs/ffs/ffs_inode.c index a608fa4..ce0d77e 100644 --- a/sys/ufs/ffs/ffs_inode.c +++ b/sys/ufs/ffs/ffs_inode.c @@ -229,7 +229,7 @@ ffs_truncate(vp, length, flags, cred, td) #endif bzero(SHORTLINK(oip), (u_int)oip->i_size); oip->i_size = 0; - DIP(oip, i_size) = 0; + DIP_SET(oip, i_size, 0); oip->i_flag |= IN_CHANGE | IN_UPDATE; if (needextclean) softdep_setup_freeblocks(oip, length, IO_EXT); @@ -291,7 +291,7 @@ ffs_truncate(vp, length, flags, cred, td) if (error) return (error); oip->i_size = length; - DIP(oip, i_size) = length; + DIP_SET(oip, i_size, length); if (bp->b_bufsize == fs->fs_bsize) bp->b_flags |= B_CLUSTEROK; if (flags & IO_SYNC) @@ -312,7 +312,7 @@ ffs_truncate(vp, length, flags, cred, td) offset = blkoff(fs, length); if (offset == 0) { oip->i_size = length; - DIP(oip, i_size) = length; + DIP_SET(oip, i_size, length); } else { lbn = lblkno(fs, length); flags |= BA_CLRBUF; @@ -333,7 +333,7 @@ ffs_truncate(vp, length, flags, cred, td) (error = VOP_FSYNC(ovp, cred, MNT_WAIT, td)) != 0) return (error); oip->i_size = length; - DIP(oip, i_size) = length; + DIP_SET(oip, i_size, length); size = blksize(fs, oip, lbn); if (ovp->v_type != VDIR) bzero((char *)bp->b_data + offset, @@ -367,14 +367,14 @@ ffs_truncate(vp, length, flags, cred, td) for (level = TRIPLE; level >= SINGLE; level--) { oldblks[NDADDR + level] = DIP(oip, i_ib[level]); if (lastiblock[level] < 0) { - DIP(oip, i_ib[level]) = 0; + DIP_SET(oip, i_ib[level], 0); lastiblock[level] = -1; } } for (i = 0; i < NDADDR; i++) { oldblks[i] = DIP(oip, i_db[i]); if (i > lastblock) - DIP(oip, i_db[i]) = 0; + DIP_SET(oip, i_db[i], 0); } oip->i_flag |= IN_CHANGE | IN_UPDATE; allerror = UFS_UPDATE(ovp, 1); @@ -387,14 +387,14 @@ ffs_truncate(vp, length, flags, cred, td) */ for (i = 0; i < NDADDR; i++) { newblks[i] = DIP(oip, i_db[i]); - DIP(oip, i_db[i]) = oldblks[i]; + DIP_SET(oip, i_db[i], oldblks[i]); } for (i = 0; i < NIADDR; i++) { newblks[NDADDR + i] = DIP(oip, i_ib[i]); - DIP(oip, i_ib[i]) = oldblks[NDADDR + i]; + DIP_SET(oip, i_ib[i], oldblks[NDADDR + i]); } oip->i_size = osize; - DIP(oip, i_size) = osize; + DIP_SET(oip, i_size, osize); error = vtruncbuf(ovp, cred, td, length, fs->fs_bsize); if (error && (allerror == 0)) @@ -415,7 +415,7 @@ ffs_truncate(vp, length, flags, cred, td) allerror = error; blocksreleased += count; if (lastiblock[level] < 0) { - DIP(oip, i_ib[level]) = 0; + DIP_SET(oip, i_ib[level], 0); ffs_blkfree(fs, oip->i_devvp, bn, fs->fs_bsize, oip->i_number); blocksreleased += nblocks; @@ -434,7 +434,7 @@ ffs_truncate(vp, length, flags, cred, td) bn = DIP(oip, i_db[i]); if (bn == 0) continue; - DIP(oip, i_db[i]) = 0; + DIP_SET(oip, i_db[i], 0); bsize = blksize(fs, oip, i); ffs_blkfree(fs, oip->i_devvp, bn, bsize, oip->i_number); blocksreleased += btodb(bsize); @@ -456,7 +456,7 @@ ffs_truncate(vp, length, flags, cred, td) */ oldspace = blksize(fs, oip, lastblock); oip->i_size = length; - DIP(oip, i_size) = length; + DIP_SET(oip, i_size, length); newspace = blksize(fs, oip, lastblock); if (newspace == 0) panic("ffs_truncate: newspace"); @@ -492,11 +492,11 @@ done: * Put back the real size. */ oip->i_size = length; - DIP(oip, i_size) = length; - DIP(oip, i_blocks) -= blocksreleased; + DIP_SET(oip, i_size, length); + DIP_SET(oip, i_blocks, DIP(oip, i_blocks) - blocksreleased); if (DIP(oip, i_blocks) < 0) /* sanity */ - DIP(oip, i_blocks) = 0; + DIP_SET(oip, i_blocks, 0); oip->i_flag |= IN_CHANGE; #ifdef QUOTA (void) chkdq(oip, -blocksreleased, NOCRED, 0); @@ -579,7 +579,10 @@ ffs_indirtrunc(ip, lbn, dbn, lastbn, level, countp) MALLOC(copy, caddr_t, fs->fs_bsize, M_TEMP, M_WAITOK); bcopy((caddr_t)bp->b_data, copy, (u_int)fs->fs_bsize); for (i = last + 1; i < NINDIR(fs); i++) - BAP(ip, i) = 0; + if (ip->i_ump->um_fstype == UFS1) + bap1[i] = 0; + else + bap2[i] = 0; if (DOINGASYNC(vp)) { bawrite(bp); } else { |