Skip to content

Commit

Permalink
[XFS] Fix up a 32/64 local flags variable issue when enabling attr2 m…
Browse files Browse the repository at this point in the history
…ode.

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

Signed-off-by: Nathan Scott <[email protected]>
  • Loading branch information
natoscott committed Nov 2, 2005
1 parent 0116d93 commit da087ba
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 11 deletions.
12 changes: 6 additions & 6 deletions fs/xfs/xfs_attr_leaf.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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;
Expand Down
11 changes: 6 additions & 5 deletions fs/xfs/xfs_bmap.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down

0 comments on commit da087ba

Please sign in to comment.