Page MenuHomeFreeBSD

D22994.diff
No OneTemporary

D22994.diff

Index: head/sys/ufs/ffs/ffs_alloc.c
===================================================================
--- head/sys/ufs/ffs/ffs_alloc.c
+++ head/sys/ufs/ffs/ffs_alloc.c
@@ -202,9 +202,9 @@
delta = btodb(size);
DIP_SET(ip, i_blocks, DIP(ip, i_blocks) + delta);
if (flags & IO_EXT)
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
else
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
*bnp = bno;
return (0);
}
@@ -329,9 +329,9 @@
delta = btodb(nsize - osize);
DIP_SET(ip, i_blocks, DIP(ip, i_blocks) + delta);
if (flags & IO_EXT)
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
else
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
allocbuf(bp, nsize);
bp->b_flags |= B_DONE;
vfs_bio_bzero_buf(bp, osize, nsize - osize);
@@ -413,9 +413,9 @@
delta = btodb(nsize - osize);
DIP_SET(ip, i_blocks, DIP(ip, i_blocks) + delta);
if (flags & IO_EXT)
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
else
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
allocbuf(bp, nsize);
bp->b_flags |= B_DONE;
vfs_bio_bzero_buf(bp, osize, nsize - osize);
@@ -743,7 +743,7 @@
else
bwrite(sbp);
} else {
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
if (!doasyncfree)
ffs_update(vp, 1);
}
@@ -1007,7 +1007,7 @@
else
bwrite(sbp);
} else {
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
if (!doasyncfree)
ffs_update(vp, 1);
}
@@ -1150,7 +1150,7 @@
ip = VTOI(*vpp);
if (ip->i_mode)
goto dup_alloc;
- ip->i_flag |= IN_MODIFIED;
+ UFS_INODE_SET_FLAG(ip, IN_MODIFIED);
vput(*vpp);
}
return (error);
@@ -1185,7 +1185,7 @@
(*vpp)->v_type = VNON;
if (fs->fs_magic == FS_UFS2_MAGIC) {
(*vpp)->v_op = &ffs_vnodeops2;
- ip->i_flag |= IN_UFS2;
+ UFS_INODE_SET_FLAG(ip, IN_UFS2);
} else {
(*vpp)->v_op = &ffs_vnodeops1;
}
@@ -3238,7 +3238,7 @@
ip->i_nlink += cmd.size;
DIP_SET(ip, i_nlink, ip->i_nlink);
ip->i_effnlink += cmd.size;
- ip->i_flag |= IN_CHANGE | IN_MODIFIED;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_MODIFIED);
error = ffs_update(vp, 1);
if (DOINGSOFTDEP(vp))
softdep_change_linkcnt(ip);
@@ -3257,7 +3257,7 @@
break;
ip = VTOI(vp);
DIP_SET(ip, i_blocks, DIP(ip, i_blocks) + cmd.size);
- ip->i_flag |= IN_CHANGE | IN_MODIFIED;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_MODIFIED);
error = ffs_update(vp, 1);
vput(vp);
break;
@@ -3274,7 +3274,7 @@
break;
ip = VTOI(vp);
DIP_SET(ip, i_size, cmd.size);
- ip->i_flag |= IN_CHANGE | IN_MODIFIED;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_MODIFIED);
error = ffs_update(vp, 1);
vput(vp);
break;
@@ -3494,7 +3494,7 @@
vput(vp);
break;
}
- ip->i_flag |= IN_CHANGE | IN_MODIFIED;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_MODIFIED);
error = ffs_update(vp, 1);
vput(vp);
break;
Index: head/sys/ufs/ffs/ffs_balloc.c
===================================================================
--- head/sys/ufs/ffs/ffs_balloc.c
+++ head/sys/ufs/ffs/ffs_balloc.c
@@ -154,7 +154,7 @@
ip->i_size = smalllblktosize(fs, nb + 1);
dp->di_size = ip->i_size;
dp->di_db[nb] = dbtofsb(fs, bp->b_blkno);
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
if (flags & IO_SYNC)
bwrite(bp);
else if (DOINGASYNC(vp))
@@ -224,7 +224,7 @@
nsize, 0, bp);
}
dp->di_db[lbn] = dbtofsb(fs, bp->b_blkno);
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
*bpp = bp;
return (0);
}
@@ -280,7 +280,7 @@
}
allocib = &dp->di_ib[indirs[0].in_off];
*allocib = nb;
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
}
/*
* Fetch through the indirect blocks, allocating as necessary.
@@ -542,7 +542,7 @@
(void) chkdq(ip, -btodb(deallocated), cred, FORCE);
#endif
dp->di_blocks -= btodb(deallocated);
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
}
(void) ffs_syncvnode(vp, MNT_WAIT, 0);
/*
@@ -645,7 +645,7 @@
dp->di_extsize = smalllblktosize(fs, nb + 1);
dp->di_extb[nb] = dbtofsb(fs, bp->b_blkno);
bp->b_xflags |= BX_ALTDATA;
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
if (flags & IO_SYNC)
bwrite(bp);
else
@@ -719,7 +719,7 @@
nsize, 0, bp);
}
dp->di_extb[lbn] = dbtofsb(fs, bp->b_blkno);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
*bpp = bp;
return (0);
}
@@ -748,7 +748,7 @@
ip->i_size = smalllblktosize(fs, nb + 1);
dp->di_size = ip->i_size;
dp->di_db[nb] = dbtofsb(fs, bp->b_blkno);
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
if (flags & IO_SYNC)
bwrite(bp);
else
@@ -818,7 +818,7 @@
nsize, 0, bp);
}
dp->di_db[lbn] = dbtofsb(fs, bp->b_blkno);
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
*bpp = bp;
return (0);
}
@@ -875,7 +875,7 @@
}
allocib = &dp->di_ib[indirs[0].in_off];
*allocib = nb;
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
}
/*
* Fetch through the indirect blocks, allocating as necessary.
@@ -1144,7 +1144,7 @@
(void) chkdq(ip, -btodb(deallocated), cred, FORCE);
#endif
dp->di_blocks -= btodb(deallocated);
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
}
(void) ffs_syncvnode(vp, MNT_WAIT, 0);
/*
Index: head/sys/ufs/ffs/ffs_inode.c
===================================================================
--- head/sys/ufs/ffs/ffs_inode.c
+++ head/sys/ufs/ffs/ffs_inode.c
@@ -275,7 +275,7 @@
oldblks[i] = ip->i_din2->di_extb[i];
ip->i_din2->di_extb[i] = 0;
}
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
if ((error = ffs_update(vp, waitforupdate)))
return (error);
for (i = 0; i < UFS_NXADDR; i++) {
@@ -299,13 +299,13 @@
bzero(SHORTLINK(ip), (u_int)ip->i_size);
ip->i_size = 0;
DIP_SET(ip, i_size, 0);
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
if (needextclean)
goto extclean;
return (ffs_update(vp, waitforupdate));
}
if (ip->i_size == length) {
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
if (needextclean)
goto extclean;
return (ffs_update(vp, 0));
@@ -339,7 +339,7 @@
bdwrite(bp);
else
bawrite(bp);
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
return (ffs_update(vp, waitforupdate));
}
/*
@@ -405,7 +405,7 @@
softdep_setup_freeblocks(ip, length, flags);
ASSERT_VOP_LOCKED(vp, "ffs_truncate1");
if (journaltrunc == 0) {
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
error = ffs_update(vp, 0);
}
return (error);
@@ -489,7 +489,7 @@
if (i > lastblock)
DIP_SET(ip, i_db[i], 0);
}
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
allerror = ffs_update(vp, waitforupdate);
/*
@@ -619,7 +619,7 @@
DIP_SET(ip, i_blocks, DIP(ip, i_blocks) - blocksreleased);
else /* sanity */
DIP_SET(ip, i_blocks, 0);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
#ifdef QUOTA
(void) chkdq(ip, -blocksreleased, NOCRED, FORCE);
#endif
Index: head/sys/ufs/ffs/ffs_snapshot.c
===================================================================
--- head/sys/ufs/ffs/ffs_snapshot.c
+++ head/sys/ufs/ffs/ffs_snapshot.c
@@ -319,7 +319,7 @@
goto out;
ip->i_size = lblktosize(fs, (off_t)numblks);
DIP_SET(ip, i_size, ip->i_size);
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
error = readblock(vp, bp, numblks - 1);
bawrite(bp);
if (error != 0)
@@ -401,7 +401,7 @@
*/
ip->i_flags |= SF_SNAPSHOT;
DIP_SET(ip, i_flags, ip->i_flags);
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
/*
* Ensure that the snapshot is completely on disk.
* Since we have marked it as a snapshot it is safe to
@@ -1215,7 +1215,7 @@
lbn = fragstoblks(fs, blkno);
if (lbn < UFS_NDADDR) {
blkp = &ip->i_din1->di_db[lbn];
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
} else {
error = ffs_balloc_ufs1(vp, lblktosize(fs, (off_t)lbn),
fs->fs_bsize, KERNCRED, BA_METAONLY, &ibp);
@@ -1501,7 +1501,7 @@
lbn = fragstoblks(fs, blkno);
if (lbn < UFS_NDADDR) {
blkp = &ip->i_din2->di_db[lbn];
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
} else {
error = ffs_balloc_ufs2(vp, lblktosize(fs, (off_t)lbn),
fs->fs_bsize, KERNCRED, BA_METAONLY, &ibp);
@@ -1724,7 +1724,7 @@
*/
ip->i_flags &= ~SF_SNAPSHOT;
DIP_SET(ip, i_flags, ip->i_flags);
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
/*
* The dirtied indirects must be written out before
* softdep_setup_freeblocks() is called. Otherwise indir_trunc()
@@ -1830,7 +1830,7 @@
panic("snapblkfree: inconsistent block type");
if (lbn < UFS_NDADDR) {
DIP_SET(ip, i_db[lbn], BLK_NOCOPY);
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
} else if (I_IS_UFS1(ip)) {
((ufs1_daddr_t *)(ibp->b_data))[indiroff] =
BLK_NOCOPY;
@@ -1887,7 +1887,7 @@
bdwrite(ibp);
}
DIP_SET(ip, i_blocks, DIP(ip, i_blocks) + btodb(size));
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
lockmgr(vp->v_vnlock, LK_RELEASE, NULL);
return (1);
}
@@ -2580,7 +2580,7 @@
ip = VTOI(vp);
if ((ip->i_flag & IN_LAZYACCESS) != 0) {
ip->i_flag &= ~IN_LAZYACCESS;
- ip->i_flag |= IN_MODIFIED;
+ UFS_INODE_SET_FLAG(ip, IN_MODIFIED);
}
VI_LOCK(vp);
if ((vp->v_iflag & VI_OWEINACT) == 0 || vp->v_usecount > 0) {
Index: head/sys/ufs/ffs/ffs_softdep.c
===================================================================
--- head/sys/ufs/ffs/ffs_softdep.c
+++ head/sys/ufs/ffs/ffs_softdep.c
@@ -6656,7 +6656,7 @@
* journaling.
*/
if (length != 0 && lastlbn >= UFS_NDADDR) {
- ip->i_flag |= IN_TRUNCATED;
+ UFS_INODE_SET_FLAG(ip, IN_TRUNCATED);
newjtrunc(freeblks, length, 0);
}
ip->i_size = length;
@@ -6780,7 +6780,7 @@
}
ip->i_size = length;
DIP_SET(ip, i_size, length);
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
allocbuf(bp, frags);
ffs_update(vp, 0);
bawrite(bp);
@@ -7647,7 +7647,7 @@
WORKLIST_INSERT(&inodedep->id_inowait, &freefile->fx_list);
FREE_LOCK(ump);
if (ip->i_number == ino)
- ip->i_flag |= IN_MODIFIED;
+ UFS_INODE_SET_FLAG(ip, IN_MODIFIED);
}
/*
@@ -8056,7 +8056,7 @@
vgone(vp);
} else if (DIP(ip, i_modrev) == freeblks->fb_modrev) {
DIP_SET(ip, i_blocks, DIP(ip, i_blocks) - spare);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
/*
* We must wait so this happens before the
* journal is reclaimed.
@@ -9873,7 +9873,7 @@
"%ju negative i_nlink %d", (intmax_t)ip->i_number,
ip->i_nlink));
DIP_SET(ip, i_nlink, ip->i_nlink);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
if (ip->i_nlink < ip->i_effnlink)
panic("handle_workitem_remove: bad file delta");
if (ip->i_nlink == 0)
@@ -9896,7 +9896,7 @@
KASSERT(ip->i_nlink >= 0, ("handle_workitem_remove: directory ino "
"%ju negative i_nlink %d", (intmax_t)ip->i_number, ip->i_nlink));
DIP_SET(ip, i_nlink, ip->i_nlink);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
if (ip->i_nlink < ip->i_effnlink)
panic("handle_workitem_remove: bad dir delta");
if (ip->i_nlink == 0)
@@ -9938,7 +9938,7 @@
}
WORKLIST_INSERT(&inodedep->id_inowait, &dirrem->dm_list);
FREE_LOCK(ump);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
out:
ffs_update(vp, 0);
vput(vp);
Index: head/sys/ufs/ffs/ffs_vfsops.c
===================================================================
--- head/sys/ufs/ffs/ffs_vfsops.c
+++ head/sys/ufs/ffs/ffs_vfsops.c
@@ -1816,7 +1816,7 @@
while (ip->i_gen == 0)
ip->i_gen = arc4random();
if ((vp->v_mount->mnt_flag & MNT_RDONLY) == 0) {
- ip->i_flag |= IN_MODIFIED;
+ UFS_INODE_SET_FLAG(ip, IN_MODIFIED);
DIP_SET(ip, i_gen, ip->i_gen);
}
}
Index: head/sys/ufs/ffs/ffs_vnops.c
===================================================================
--- head/sys/ufs/ffs/ffs_vnops.c
+++ head/sys/ufs/ffs/ffs_vnops.c
@@ -668,7 +668,7 @@
(vp->v_mount->mnt_flag & (MNT_NOATIME | MNT_RDONLY)) == 0 &&
(ip->i_flag & IN_ACCESS) == 0) {
VI_LOCK(vp);
- ip->i_flag |= IN_ACCESS;
+ UFS_INODE_SET_FLAG(ip, IN_ACCESS);
VI_UNLOCK(vp);
}
return (error);
@@ -853,7 +853,7 @@
}
if (error || xfersize == 0)
break;
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
}
/*
* If we successfully wrote any data, and we are not the superuser
@@ -1096,7 +1096,7 @@
bdwrite(bp);
if (error || xfersize == 0)
break;
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
}
/*
* If we successfully wrote any data, and we are not the superuser
@@ -1203,11 +1203,11 @@
ip = VTOI(vp);
VI_LOCK(vp);
while (ip->i_flag & IN_EA_LOCKED) {
- ip->i_flag |= IN_EA_LOCKWAIT;
+ UFS_INODE_SET_FLAG(ip, IN_EA_LOCKWAIT);
msleep(&ip->i_ea_refs, &vp->v_interlock, PINOD + 2, "ufs_ea",
0);
}
- ip->i_flag |= IN_EA_LOCKED;
+ UFS_INODE_SET_FLAG(ip, IN_EA_LOCKED);
VI_UNLOCK(vp);
}
Index: head/sys/ufs/ufs/inode.h
===================================================================
--- head/sys/ufs/ufs/inode.h
+++ head/sys/ufs/ufs/inode.h
@@ -138,6 +138,13 @@
"\14b12\13is_ufs2\12truncated\11ea_lockwait\10ea_locked" \
"\7lazyaccess\6lazymod\5needsync\4modified\3update\2change\1access"
+#define UFS_INODE_SET_FLAG(ip, flags) do { \
+ struct inode *_ip = (ip); \
+ int _flags = (flags); \
+ \
+ _ip->i_flag |= _flags; \
+} while (0)
+
#define i_dirhash i_un.dirhash
#define i_snapblklist i_un.snapblklist
#define i_din1 dinode_u.din1
Index: head/sys/ufs/ufs/ufs_acl.c
===================================================================
--- head/sys/ufs/ufs/ufs_acl.c
+++ head/sys/ufs/ufs/ufs_acl.c
@@ -421,7 +421,7 @@
ip->i_mode &= ACL_PRESERVE_MASK;
ip->i_mode |= mode;
DIP_SET(ip, i_mode, ip->i_mode);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
VN_KNOTE_UNLOCKED(vp, NOTE_ATTRIB);
@@ -594,7 +594,7 @@
* inode and mark it as changed.
*/
ufs_sync_inode_from_acl(ap->a_aclp, ip);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
error = UFS_UPDATE(ap->a_vp, 0);
}
Index: head/sys/ufs/ufs/ufs_inode.c
===================================================================
--- head/sys/ufs/ufs/ufs_inode.c
+++ head/sys/ufs/ufs/ufs_inode.c
@@ -183,7 +183,7 @@
mode = ip->i_mode;
ip->i_mode = 0;
DIP_SET(ip, i_mode, 0);
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
if (DOINGSOFTDEP(vp))
softdep_change_linkcnt(ip);
UFS_VFREE(vp, ip->i_number, mode);
@@ -241,7 +241,7 @@
#endif
if (ip->i_flag & IN_LAZYMOD)
- ip->i_flag |= IN_MODIFIED;
+ UFS_INODE_SET_FLAG(ip, IN_MODIFIED);
UFS_UPDATE(vp, 0);
/*
* Remove the inode from its hash chain.
Index: head/sys/ufs/ufs/ufs_lookup.c
===================================================================
--- head/sys/ufs/ufs/ufs_lookup.c
+++ head/sys/ufs/ufs/ufs_lookup.c
@@ -556,7 +556,7 @@
ufs_dirbad(dp, i_offset, "i_size too small");
dp->i_size = i_offset + DIRSIZ(OFSFMT(vdp), ep);
DIP_SET(dp, i_size, dp->i_size);
- dp->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(dp, IN_CHANGE | IN_UPDATE);
}
brelse(bp);
@@ -918,7 +918,7 @@
dp->i_size = dp->i_offset + DIRBLKSIZ;
DIP_SET(dp, i_size, dp->i_size);
dp->i_endoff = dp->i_size;
- dp->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(dp, IN_CHANGE | IN_UPDATE);
dirp->d_reclen = DIRBLKSIZ;
blkoff = dp->i_offset &
(VFSTOUFS(dvp->v_mount)->um_mountp->mnt_stat.f_iosize - 1);
@@ -946,7 +946,7 @@
}
if (softdep_setup_directory_add(bp, dp, dp->i_offset,
dirp->d_ino, newdirbp, 1))
- dp->i_flag |= IN_NEEDSYNC;
+ UFS_INODE_SET_FLAG(dp, IN_NEEDSYNC);
if (newdirbp)
bdwrite(newdirbp);
bdwrite(bp);
@@ -1118,7 +1118,7 @@
error = bwrite(bp);
}
}
- dp->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(dp, IN_CHANGE | IN_UPDATE);
/*
* If all went well, and the directory can be shortened, proceed
* with the truncation. Note that we have to unlock the inode for
@@ -1179,13 +1179,13 @@
*/
if (ip) {
ip->i_effnlink--;
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
if (DOINGSOFTDEP(dvp)) {
softdep_setup_unlink(dp, ip);
} else {
ip->i_nlink--;
DIP_SET(ip, i_nlink, ip->i_nlink);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
}
}
if (flags & DOWHITEOUT)
@@ -1195,13 +1195,13 @@
if ((error = UFS_BLKATOFF(dvp, offset, (char **)&ep, &bp)) != 0) {
if (ip) {
ip->i_effnlink++;
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
if (DOINGSOFTDEP(dvp)) {
softdep_change_linkcnt(ip);
} else {
ip->i_nlink++;
DIP_SET(ip, i_nlink, ip->i_nlink);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
}
}
return (error);
@@ -1269,7 +1269,7 @@
else
error = bwrite(bp);
}
- dp->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(dp, IN_CHANGE | IN_UPDATE);
/*
* If the last named reference to a snapshot goes away,
* drop its snapshot reference so that it will be reclaimed
@@ -1303,13 +1303,13 @@
* necessary.
*/
oip->i_effnlink--;
- oip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(oip, IN_CHANGE);
if (DOINGSOFTDEP(vdp)) {
softdep_setup_unlink(dp, oip);
} else {
oip->i_nlink--;
DIP_SET(oip, i_nlink, oip->i_nlink);
- oip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(oip, IN_CHANGE);
}
error = UFS_BLKATOFF(vdp, (off_t)dp->i_offset, (char **)&ep, &bp);
@@ -1320,13 +1320,13 @@
}
if (error) {
oip->i_effnlink++;
- oip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(oip, IN_CHANGE);
if (DOINGSOFTDEP(vdp)) {
softdep_change_linkcnt(oip);
} else {
oip->i_nlink++;
DIP_SET(oip, i_nlink, oip->i_nlink);
- oip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(oip, IN_CHANGE);
}
return (error);
}
@@ -1344,7 +1344,7 @@
error = bwrite(bp);
}
}
- dp->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(dp, IN_CHANGE | IN_UPDATE);
/*
* If the last named reference to a snapshot goes away,
* drop its snapshot reference so that it will be reclaimed
Index: head/sys/ufs/ufs/ufs_vnops.c
===================================================================
--- head/sys/ufs/ufs/ufs_vnops.c
+++ head/sys/ufs/ufs/ufs_vnops.c
@@ -154,13 +154,13 @@
return;
if ((vp->v_type == VBLK || vp->v_type == VCHR) && !DOINGSOFTDEP(vp))
- ip->i_flag |= IN_LAZYMOD;
+ UFS_INODE_SET_FLAG(ip, IN_LAZYMOD);
else if (((vp->v_mount->mnt_kern_flag &
(MNTK_SUSPENDED | MNTK_SUSPEND)) == 0) ||
(ip->i_flag & (IN_CHANGE | IN_UPDATE)))
- ip->i_flag |= IN_MODIFIED;
+ UFS_INODE_SET_FLAG(ip, IN_MODIFIED);
else if (ip->i_flag & IN_ACCESS)
- ip->i_flag |= IN_LAZYACCESS;
+ UFS_INODE_SET_FLAG(ip, IN_LAZYACCESS);
vfs_timestamp(&ts);
if (ip->i_flag & IN_ACCESS) {
DIP_SET(ip, i_atime, ts.tv_sec);
@@ -237,7 +237,7 @@
if (error)
return (error);
ip = VTOI(*vpp);
- ip->i_flag |= IN_ACCESS | IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_ACCESS | IN_CHANGE | IN_UPDATE);
if (vap->va_rdev != VNOVAL) {
/*
* Want to be able to use this to make badblock
@@ -550,7 +550,7 @@
}
ip->i_flags = vap->va_flags;
DIP_SET(ip, i_flags, vap->va_flags);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
error = UFS_UPDATE(vp, 0);
if (ip->i_flags & (IMMUTABLE | APPEND))
return (error);
@@ -619,7 +619,7 @@
error = vn_utimes_perm(vp, vap, cred, td);
if (error != 0)
return (error);
- ip->i_flag |= IN_CHANGE | IN_MODIFIED;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_MODIFIED);
if (vap->va_atime.tv_sec != VNOVAL) {
ip->i_flag &= ~IN_ACCESS;
DIP_SET(ip, i_atime, vap->va_atime.tv_sec);
@@ -690,7 +690,7 @@
struct inode *ip = VTOI(vp);
VI_LOCK(vp);
- ip->i_flag |= IN_ACCESS;
+ UFS_INODE_SET_FLAG(ip, IN_ACCESS);
VI_UNLOCK(vp);
/*
* XXXKIB No UFS_UPDATE(ap->a_vp, 0) there.
@@ -746,7 +746,7 @@
ip->i_mode &= ~ALLPERMS;
ip->i_mode |= (mode & ALLPERMS);
DIP_SET(ip, i_mode, ip->i_mode);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
#ifdef UFS_ACL
if ((vp->v_mount->mnt_flag & MNT_NFS4ACLS) != 0)
error = ufs_update_nfs4_acl_after_mode_change(vp, mode, ip->i_uid, cred, td);
@@ -865,7 +865,7 @@
if (getinoquota(ip))
panic("ufs_chown: lost quota");
#endif /* QUOTA */
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
if ((ip->i_mode & (ISUID | ISGID)) && (ouid != uid || ogid != gid)) {
if (priv_check_cred(cred, PRIV_VFS_RETAINSUGID)) {
ip->i_mode &= ~(ISUID | ISGID);
@@ -979,7 +979,7 @@
ip->i_effnlink++;
ip->i_nlink++;
DIP_SET(ip, i_nlink, ip->i_nlink);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
if (DOINGSOFTDEP(vp))
softdep_setup_link(VTOI(tdvp), ip);
error = UFS_UPDATE(vp, !DOINGSOFTDEP(vp) && !DOINGASYNC(vp));
@@ -992,7 +992,7 @@
ip->i_effnlink--;
ip->i_nlink--;
DIP_SET(ip, i_nlink, ip->i_nlink);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
if (DOINGSOFTDEP(vp))
softdep_revert_link(VTOI(tdvp), ip);
}
@@ -1323,7 +1323,7 @@
fip->i_effnlink++;
fip->i_nlink++;
DIP_SET(fip, i_nlink, fip->i_nlink);
- fip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(fip, IN_CHANGE);
if (DOINGSOFTDEP(fvp))
softdep_setup_link(tdp, fip);
error = UFS_UPDATE(fvp, !DOINGSOFTDEP(fvp) && !DOINGASYNC(fvp));
@@ -1441,11 +1441,11 @@
if (!newparent) {
tdp->i_nlink--;
DIP_SET(tdp, i_nlink, tdp->i_nlink);
- tdp->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(tdp, IN_CHANGE);
}
tip->i_nlink--;
DIP_SET(tip, i_nlink, tip->i_nlink);
- tip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(tip, IN_CHANGE);
}
}
@@ -1476,7 +1476,7 @@
tdp->i_effnlink++;
tdp->i_nlink++;
DIP_SET(tdp, i_nlink, tdp->i_nlink);
- tdp->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(tdp, IN_CHANGE);
if (DOINGSOFTDEP(tdvp))
softdep_setup_dotdot_link(tdp, fip);
error = UFS_UPDATE(tdvp, !DOINGSOFTDEP(tdvp) &&
@@ -1546,7 +1546,7 @@
fip->i_effnlink--;
fip->i_nlink--;
DIP_SET(fip, i_nlink, fip->i_nlink);
- fip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(fip, IN_CHANGE);
if (DOINGSOFTDEP(fvp))
softdep_revert_link(tdp, fip);
goto unlockout;
@@ -1861,7 +1861,7 @@
}
#endif
#endif /* !SUIDDIR */
- ip->i_flag |= IN_ACCESS | IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_ACCESS | IN_CHANGE | IN_UPDATE);
ip->i_mode = dmode;
DIP_SET(ip, i_mode, dmode);
tvp->v_type = VDIR; /* Rest init'd in getnewvnode(). */
@@ -1882,7 +1882,7 @@
dp->i_effnlink++;
dp->i_nlink++;
DIP_SET(dp, i_nlink, dp->i_nlink);
- dp->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(dp, IN_CHANGE);
if (DOINGSOFTDEP(dvp))
softdep_setup_mkdir(dp, ip);
error = UFS_UPDATE(dvp, !DOINGSOFTDEP(dvp) && !DOINGASYNC(dvp));
@@ -1926,7 +1926,7 @@
goto bad;
ip->i_size = DIRBLKSIZ;
DIP_SET(ip, i_size, DIRBLKSIZ);
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
bcopy((caddr_t)&dirtemplate, (caddr_t)bp->b_data, sizeof dirtemplate);
if (DOINGSOFTDEP(tvp)) {
/*
@@ -1972,7 +1972,7 @@
dp->i_effnlink--;
dp->i_nlink--;
DIP_SET(dp, i_nlink, dp->i_nlink);
- dp->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(dp, IN_CHANGE);
/*
* No need to do an explicit VOP_TRUNCATE here, vrele will
* do this for us because we set the link count to 0.
@@ -1980,7 +1980,7 @@
ip->i_effnlink = 0;
ip->i_nlink = 0;
DIP_SET(ip, i_nlink, 0);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
if (DOINGSOFTDEP(tvp))
softdep_revert_mkdir(dp, ip);
@@ -2069,11 +2069,11 @@
if (!DOINGSOFTDEP(vp)) {
dp->i_nlink--;
DIP_SET(dp, i_nlink, dp->i_nlink);
- dp->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(dp, IN_CHANGE);
error = UFS_UPDATE(dvp, 0);
ip->i_nlink--;
DIP_SET(ip, i_nlink, ip->i_nlink);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
}
cache_purge(vp);
#ifdef UFS_DIRHASH
@@ -2113,7 +2113,7 @@
bcopy(ap->a_target, SHORTLINK(ip), len);
ip->i_size = len;
DIP_SET(ip, i_size, len);
- ip->i_flag |= IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE | IN_UPDATE);
error = UFS_UPDATE(vp, 0);
} else
error = vn_rdwr(UIO_WRITE, vp, __DECONST(void *, ap->a_target),
@@ -2629,7 +2629,7 @@
}
#endif
#endif /* !SUIDDIR */
- ip->i_flag |= IN_ACCESS | IN_CHANGE | IN_UPDATE;
+ UFS_INODE_SET_FLAG(ip, IN_ACCESS | IN_CHANGE | IN_UPDATE);
ip->i_mode = mode;
DIP_SET(ip, i_mode, mode);
tvp->v_type = IFTOVT(mode); /* Rest init'd in getnewvnode(). */
@@ -2691,7 +2691,7 @@
ip->i_effnlink = 0;
ip->i_nlink = 0;
DIP_SET(ip, i_nlink, 0);
- ip->i_flag |= IN_CHANGE;
+ UFS_INODE_SET_FLAG(ip, IN_CHANGE);
if (DOINGSOFTDEP(tvp))
softdep_revert_create(VTOI(dvp), ip);
vput(tvp);

File Metadata

Mime Type
text/plain
Expires
Fri, Feb 14, 8:53 AM (19 h, 48 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16640289
Default Alt Text
D22994.diff (25 KB)

Event Timeline