This is a note to let you know that I've just added the patch titled xfs: simplify di_flags2 inheritance in xfs_ialloc to the 5.4-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: xfs-simplify-di_flags2-inheritance-in-xfs_ialloc.patch and it can be found in the queue-5.4 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From stable-owner@xxxxxxxxxxxxxxx Wed Apr 12 06:28:33 2023 From: Chandan Babu R <chandan.babu@xxxxxxxxxx> Date: Wed, 12 Apr 2023 09:56:15 +0530 Subject: xfs: simplify di_flags2 inheritance in xfs_ialloc To: gregkh@xxxxxxxxxxxxxxxxxxx Cc: sashal@xxxxxxxxxx, mcgrof@xxxxxxxxxx, linux-xfs@xxxxxxxxxxxxxxx, stable@xxxxxxxxxxxxxxx, djwong@xxxxxxxxxx, chandan.babu@xxxxxxxxxx, amir73il@xxxxxxxxx, leah.rumancik@xxxxxxxxx Message-ID: <20230412042624.600511-9-chandan.babu@xxxxxxxxxx> From: Christoph Hellwig <hch@xxxxxx> commit b3d1d37544d8c98be610df0ed66c884ff18748d5 upstream. di_flags2 is initialized to zero for v4 and earlier file systems. This means di_flags2 can only be non-zero for a v5 file systems, in which case both the parent and child inodes can store the field. Remove the extra di_version check, and also remove the rather pointless local di_flags2 variable while at it. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx> Reviewed-by: Chandan Rajendra <chandanrlinux@xxxxxxxxx> Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> Signed-off-by: Chandan Babu R <chandan.babu@xxxxxxxxxx> Acked-by: Darrick J. Wong <djwong@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- fs/xfs/xfs_inode.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -902,20 +902,13 @@ xfs_ialloc( ip->i_d.di_flags |= di_flags; } - if (pip && - (pip->i_d.di_flags2 & XFS_DIFLAG2_ANY) && - pip->i_d.di_version == 3 && - ip->i_d.di_version == 3) { - uint64_t di_flags2 = 0; - + if (pip && (pip->i_d.di_flags2 & XFS_DIFLAG2_ANY)) { if (pip->i_d.di_flags2 & XFS_DIFLAG2_COWEXTSIZE) { - di_flags2 |= XFS_DIFLAG2_COWEXTSIZE; + ip->i_d.di_flags2 |= XFS_DIFLAG2_COWEXTSIZE; ip->i_d.di_cowextsize = pip->i_d.di_cowextsize; } if (pip->i_d.di_flags2 & XFS_DIFLAG2_DAX) - di_flags2 |= XFS_DIFLAG2_DAX; - - ip->i_d.di_flags2 |= di_flags2; + ip->i_d.di_flags2 |= XFS_DIFLAG2_DAX; } /* FALLTHROUGH */ case S_IFLNK: Patches currently in stable-queue which might be from stable-owner@xxxxxxxxxxxxxxx are queue-5.4/xfs-merge-the-projid-fields-in-struct-xfs_icdinode.patch queue-5.4/xfs-simplify-a-check-in-xfs_ioctl_setattr_check_cowextsize.patch queue-5.4/xfs-shut-down-the-filesystem-if-we-screw-up-quota-reservation.patch queue-5.4/irqdomain-fix-mapping-creation-race.patch queue-5.4/xfs-add-a-new-xfs_sb_version_has_v3inode-helper.patch queue-5.4/xfs-only-check-the-superblock-version-for-dinode-size-calculation.patch queue-5.4/xfs-force-log-and-push-ail-to-clear-pinned-inodes-when-aborting-mount.patch queue-5.4/xfs-fix-up-non-directory-creation-in-sgid-directories.patch queue-5.4/xfs-consider-shutdown-in-bmapbt-cursor-delete-assert.patch queue-5.4/xfs-set-inode-size-after-creating-symlink.patch queue-5.4/xfs-remove-the-kuid-kgid-conversion-wrappers.patch queue-5.4/xfs-ensure-that-the-inode-uid-gid-match-values-match-the-icdinode-ones.patch queue-5.4/xfs-remove-the-icdinode-di_uid-di_gid-members.patch queue-5.4/xfs-don-t-reuse-busy-extents-on-extent-trim.patch queue-5.4/irqdomain-refactor-__irq_domain_alloc_irqs.patch queue-5.4/xfs-simplify-di_flags2-inheritance-in-xfs_ialloc.patch queue-5.4/irqdomain-look-for-existing-mapping-only-once.patch queue-5.4/xfs-show-the-proper-user-quota-options.patch queue-5.4/xfs-report-corruption-only-as-a-regular-error.patch queue-5.4/xfs-remove-the-di_version-field-from-struct-icdinode.patch