ufs: add a setter for inode i_flag field
This will be used later to add vnodes to the lazy list. Reviewed by: kib (previous version), jeff Tested by: pho (in a larger patch) Differential Revision: https://reviews.freebsd.org/D22994
This commit is contained in:
parent
365cd52245
commit
ac4ec14188
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=356669
@ -202,9 +202,9 @@ ffs_alloc(ip, lbn, bpref, size, flags, cred, bnp)
|
||||
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 @@ ffs_realloccg(ip, lbprev, bprev, bpref, osize, nsize, flags, cred, bpp)
|
||||
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 @@ ffs_realloccg(ip, lbprev, bprev, bpref, osize, nsize, flags, cred, bpp)
|
||||
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 @@ ffs_reallocblks_ufs1(ap)
|
||||
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 @@ ffs_reallocblks_ufs2(ap)
|
||||
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 @@ ffs_valloc(pvp, mode, cred, vpp)
|
||||
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 @@ ffs_valloc(pvp, mode, cred, vpp)
|
||||
(*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 @@ sysctl_ffs_fsck(SYSCTL_HANDLER_ARGS)
|
||||
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 @@ sysctl_ffs_fsck(SYSCTL_HANDLER_ARGS)
|
||||
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 @@ sysctl_ffs_fsck(SYSCTL_HANDLER_ARGS)
|
||||
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 @@ sysctl_ffs_fsck(SYSCTL_HANDLER_ARGS)
|
||||
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;
|
||||
|
@ -154,7 +154,7 @@ ffs_balloc_ufs1(struct vnode *vp, off_t startoffset, int size,
|
||||
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 @@ ffs_balloc_ufs1(struct vnode *vp, off_t startoffset, int size,
|
||||
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 @@ ffs_balloc_ufs1(struct vnode *vp, off_t startoffset, int size,
|
||||
}
|
||||
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 @@ ffs_balloc_ufs1(struct vnode *vp, off_t startoffset, int size,
|
||||
(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 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size,
|
||||
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 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size,
|
||||
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 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size,
|
||||
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 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size,
|
||||
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 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size,
|
||||
}
|
||||
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 @@ ffs_balloc_ufs2(struct vnode *vp, off_t startoffset, int size,
|
||||
(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);
|
||||
/*
|
||||
|
@ -275,7 +275,7 @@ ffs_truncate(vp, length, flags, cred)
|
||||
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 @@ ffs_truncate(vp, length, flags, cred)
|
||||
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 @@ ffs_truncate(vp, length, flags, cred)
|
||||
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 @@ ffs_truncate(vp, length, flags, cred)
|
||||
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 @@ ffs_truncate(vp, length, flags, cred)
|
||||
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 @@ ffs_truncate(vp, length, flags, cred)
|
||||
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
|
||||
|
@ -319,7 +319,7 @@ ffs_snapshot(mp, snapfile)
|
||||
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 @@ ffs_snapshot(mp, snapfile)
|
||||
*/
|
||||
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 @@ snapacct_ufs1(vp, oldblkp, lastblkp, fs, lblkno, expungetype)
|
||||
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 @@ snapacct_ufs2(vp, oldblkp, lastblkp, fs, lblkno, expungetype)
|
||||
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 @@ ffs_snapremove(vp)
|
||||
*/
|
||||
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 @@ ffs_snapblkfree(fs, devvp, bno, size, inum, vtype, wkhd)
|
||||
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 @@ ffs_snapblkfree(fs, devvp, bno, size, inum, vtype, wkhd)
|
||||
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 @@ process_deferred_inactive(struct mount *mp)
|
||||
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) {
|
||||
|
@ -6656,7 +6656,7 @@ softdep_journal_freeblocks(ip, cred, length, flags)
|
||||
* 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 @@ softdep_journal_freeblocks(ip, cred, length, flags)
|
||||
}
|
||||
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 @@ softdep_freefile(pvp, ino, mode)
|
||||
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 @@ handle_complete_freeblocks(freeblks, flags)
|
||||
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 @@ handle_workitem_remove(dirrem, flags)
|
||||
"%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 @@ handle_workitem_remove(dirrem, flags)
|
||||
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 @@ handle_workitem_remove(dirrem, flags)
|
||||
}
|
||||
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);
|
||||
|
@ -1816,7 +1816,7 @@ ffs_vgetf(mp, ino, flags, vpp, ffs_flags)
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
@ -668,7 +668,7 @@ ffs_read(ap)
|
||||
(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 @@ ffs_write(ap)
|
||||
}
|
||||
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 @@ ffs_extwrite(struct vnode *vp, struct uio *uio, int ioflag, struct ucred *ucred)
|
||||
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 @@ ffs_lock_ea(struct vnode *vp)
|
||||
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);
|
||||
}
|
||||
|
||||
|
@ -138,6 +138,13 @@ struct inode {
|
||||
"\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
|
||||
|
@ -421,7 +421,7 @@ ufs_setacl_nfs4_internal(struct vnode *vp, struct acl *aclp, struct thread *td)
|
||||
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 @@ ufs_setacl_posix1e(struct vop_setacl_args *ap)
|
||||
* 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);
|
||||
}
|
||||
|
||||
|
@ -183,7 +183,7 @@ ufs_inactive(ap)
|
||||
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 @@ ufs_reclaim(ap)
|
||||
#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.
|
||||
|
@ -556,7 +556,7 @@ ufs_lookup_ino(struct vnode *vdp, struct vnode **vpp, struct componentname *cnp,
|
||||
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 @@ ufs_direnter(dvp, tvp, dirp, cnp, newdirbp, isrename)
|
||||
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 @@ ufs_direnter(dvp, tvp, dirp, cnp, newdirbp, isrename)
|
||||
}
|
||||
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 @@ ufs_direnter(dvp, tvp, dirp, cnp, newdirbp, isrename)
|
||||
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 @@ ufs_dirremove(dvp, ip, flags, isrmdir)
|
||||
*/
|
||||
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 @@ ufs_dirremove(dvp, ip, flags, isrmdir)
|
||||
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 @@ ufs_dirremove(dvp, ip, flags, isrmdir)
|
||||
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 @@ ufs_dirrewrite(dp, oip, newinum, newtype, isrmdir)
|
||||
* 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 @@ ufs_dirrewrite(dp, oip, newinum, newtype, isrmdir)
|
||||
}
|
||||
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 @@ ufs_dirrewrite(dp, oip, newinum, newtype, isrmdir)
|
||||
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
|
||||
|
@ -154,13 +154,13 @@ ufs_itimes_locked(struct vnode *vp)
|
||||
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 @@ ufs_mknod(ap)
|
||||
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 @@ ufs_setattr(ap)
|
||||
}
|
||||
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 @@ ufs_setattr(ap)
|
||||
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 @@ ufs_markatime(ap)
|
||||
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 @@ ufs_chmod(vp, mode, cred, td)
|
||||
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 @@ ufs_chown(vp, uid, gid, cred, td)
|
||||
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 @@ ufs_link(ap)
|
||||
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 @@ ufs_link(ap)
|
||||
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 @@ ufs_rename(ap)
|
||||
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 @@ ufs_rename(ap)
|
||||
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 @@ ufs_rename(ap)
|
||||
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 @@ ufs_rename(ap)
|
||||
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 @@ ufs_mkdir(ap)
|
||||
}
|
||||
#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 @@ ufs_mkdir(ap)
|
||||
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 @@ ufs_mkdir(ap)
|
||||
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 @@ ufs_mkdir(ap)
|
||||
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 @@ ufs_mkdir(ap)
|
||||
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 @@ ufs_rmdir(ap)
|
||||
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 @@ ufs_symlink(ap)
|
||||
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 @@ ufs_makeinode(mode, dvp, vpp, cnp, callfunc)
|
||||
}
|
||||
#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 @@ ufs_makeinode(mode, dvp, vpp, cnp, callfunc)
|
||||
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);
|
||||
|
Loading…
Reference in New Issue
Block a user