xfs: preserve DIFLAG2_NREXT64 when setting other inode attributes
authorDarrick J. Wong <djwong@kernel.org>
Mon, 6 Jun 2022 01:51:23 +0000 (18:51 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Thu, 16 Jun 2022 06:13:33 +0000 (23:13 -0700)
It is vitally important that we preserve the state of the NREXT64 inode
flag when we're changing the other flags2 fields.

Fixes: 9b7d16e34bbe ("xfs: Introduce XFS_DIFLAG2_NREXT64 and associated helpers")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Chandan Babu R <chandan.babu@oracle.com>
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>
fs/xfs/xfs_ioctl.c

index 5a364a7d58fdde24b49383a373d4f1bce20a3692..0d67ff8a8961d1d0777007442f9d79ec0215e23d 100644 (file)
@@ -1096,7 +1096,8 @@ xfs_flags2diflags2(
 {
        uint64_t                di_flags2 =
                (ip->i_diflags2 & (XFS_DIFLAG2_REFLINK |
-                                  XFS_DIFLAG2_BIGTIME));
+                                  XFS_DIFLAG2_BIGTIME |
+                                  XFS_DIFLAG2_NREXT64));
 
        if (xflags & FS_XFLAG_DAX)
                di_flags2 |= XFS_DIFLAG2_DAX;