ext2fs: fix logic error in the previous change.

Use the bitwise negation instead of bogus boolean negation and move
the flag manipulation with the assignment.
Fix some grammatical errors introduced in the same change.

Reported by:	bde
MFC after:	3 days
This commit is contained in:
pfg 2014-01-22 19:09:41 +00:00
parent 6ee60702e2
commit cc5aa413b4
3 changed files with 5 additions and 6 deletions

View File

@ -888,9 +888,9 @@ ext2_direnter(struct inode *ip, struct vnode *dvp, struct componentname *cnp)
if (ext2_htree_has_idx(dp)) {
error = ext2_htree_add_entry(dvp, &newdir, cnp);
if (error) {
/* XXX: These seem to be set in the wrong place. */
dp->i_flags |= IN_CHANGE | IN_UPDATE;
/* XXX: These are set in the wrong place. */
dp->i_flags &= ~E4_INDEX;
dp->i_flags |= IN_CHANGE | IN_UPDATE;
}
return (error);
}

View File

@ -82,7 +82,7 @@ ext2_blkatoff(struct vnode *vp, off_t offset, char **res, struct buf **bpp)
*bpp = NULL;
/*
* E4_EXTENTS requires special treatment otherwise we can fall
* E4_EXTENTS requires special treatment as we can otherwise fall
* back to the normal path.
*/
if (!(ip->i_flags & E4_EXTENTS))

View File

@ -343,9 +343,8 @@ ext2_getattr(struct vop_getattr_args *ap)
vap->va_birthtime.tv_sec = ip->i_birthtime;
vap->va_birthtime.tv_nsec = ip->i_birthnsec;
}
vap->va_flags = ip->i_flags;
/* E4_* flags are private to the driver */
vap->va_flags &= !(E4_INDEX | E4_EXTENTS);
/* E4_* flags are private to the filesystem. */
vap->va_flags = ip->i_flags & ~(E4_INDEX | E4_EXTENTS);
vap->va_gen = ip->i_gen;
vap->va_blocksize = vp->v_mount->mnt_stat.f_iosize;
vap->va_bytes = dbtob((u_quad_t)ip->i_blocks);