Jelajahi Sumber

[XFS] Fix up a 32/64 local flags variable issue when enabling attr2 mode.

SGI-PV: 941645
SGI-Modid: xfs-linux:xfs-kern:23925a

Signed-off-by: Nathan Scott <nathans@sgi.com>
Nathan Scott 19 tahun lalu
induk
melakukan
da087bad81
2 mengubah file dengan 12 tambahan dan 11 penghapusan
  1. 6 6
      fs/xfs/xfs_attr_leaf.c
  2. 6 5
      fs/xfs/xfs_bmap.c

+ 6 - 6
fs/xfs/xfs_attr_leaf.c

@@ -117,12 +117,6 @@ xfs_attr_shortform_bytesfit(xfs_inode_t *dp, int bytes)
 	int maxforkoff;	/* upper limit on valid forkoff locations */
 	xfs_mount_t *mp = dp->i_mount;
 
-	if (unlikely(mp->m_flags & XFS_MOUNT_COMPAT_ATTR)) {
-		if (bytes <= XFS_IFORK_ASIZE(dp))
-			return mp->m_attroffset >> 3;
-		return 0;
-	}
-
 	offset = (XFS_LITINO(mp) - bytes) >> 3; /* rounded down */
 
 	switch (dp->i_d.di_format) {
@@ -134,6 +128,12 @@ xfs_attr_shortform_bytesfit(xfs_inode_t *dp, int bytes)
 		return (offset >= minforkoff) ? minforkoff : 0;
 	}
 
+	if (unlikely(mp->m_flags & XFS_MOUNT_COMPAT_ATTR)) {
+		if (bytes <= XFS_IFORK_ASIZE(dp))
+			return mp->m_attroffset >> 3;
+		return 0;
+	}
+
 	/* data fork btree root can have at least this many key/ptr pairs */
 	minforkoff = MAX(dp->i_df.if_bytes, XFS_BMDR_SPACE_CALC(MINDBTPTRS));
 	minforkoff = roundup(minforkoff, 8) >> 3;

+ 6 - 5
fs/xfs/xfs_bmap.c

@@ -3909,19 +3909,20 @@ xfs_bmap_add_attrfork(
 		goto error2;
 	if (!XFS_SB_VERSION_HASATTR(&mp->m_sb) ||
 	   (!XFS_SB_VERSION_HASATTR2(&mp->m_sb) && version == 2)) {
-		logflags = 0;
+		__int64_t sbfields = 0;
+
 		s = XFS_SB_LOCK(mp);
 		if (!XFS_SB_VERSION_HASATTR(&mp->m_sb)) {
 			XFS_SB_VERSION_ADDATTR(&mp->m_sb);
-			logflags |= XFS_SB_VERSIONNUM;
+			sbfields |= XFS_SB_VERSIONNUM;
 		}
 		if (!XFS_SB_VERSION_HASATTR2(&mp->m_sb) && version == 2) {
 			XFS_SB_VERSION_ADDATTR2(&mp->m_sb);
-			logflags |= (XFS_SB_VERSIONNUM | XFS_SB_FEATURES2);
+			sbfields |= (XFS_SB_VERSIONNUM | XFS_SB_FEATURES2);
 		}
-		if (logflags) {
+		if (sbfields) {
 			XFS_SB_UNLOCK(mp, s);
-			xfs_mod_sb(tp, logflags);
+			xfs_mod_sb(tp, sbfields);
 		} else
 			XFS_SB_UNLOCK(mp, s);
 	}