From b7bbf8b9f3c79ecd478e09d8665ec80cc041a2f7 Mon Sep 17 00:00:00 2001 From: "Pedro F. Giffuni" Date: Wed, 22 Jan 2014 19:09:41 +0000 Subject: [PATCH] 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 --- sys/fs/ext2fs/ext2_lookup.c | 4 ++-- sys/fs/ext2fs/ext2_subr.c | 2 +- sys/fs/ext2fs/ext2_vnops.c | 5 ++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/sys/fs/ext2fs/ext2_lookup.c b/sys/fs/ext2fs/ext2_lookup.c index 02e66f76724..cd230dce294 100644 --- a/sys/fs/ext2fs/ext2_lookup.c +++ b/sys/fs/ext2fs/ext2_lookup.c @@ -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); } diff --git a/sys/fs/ext2fs/ext2_subr.c b/sys/fs/ext2fs/ext2_subr.c index 09fcee80654..585a975cc08 100644 --- a/sys/fs/ext2fs/ext2_subr.c +++ b/sys/fs/ext2fs/ext2_subr.c @@ -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)) diff --git a/sys/fs/ext2fs/ext2_vnops.c b/sys/fs/ext2fs/ext2_vnops.c index 72a008bd333..1ab1fdd60b8 100644 --- a/sys/fs/ext2fs/ext2_vnops.c +++ b/sys/fs/ext2fs/ext2_vnops.c @@ -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);