Loading fs/xfs/xfs_attr_leaf.c +6 −6 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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; Loading fs/xfs/xfs_bmap.c +6 −5 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading
fs/xfs/xfs_attr_leaf.c +6 −6 Original line number Diff line number Diff line Loading @@ -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) { Loading @@ -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; Loading
fs/xfs/xfs_bmap.c +6 −5 Original line number Diff line number Diff line Loading @@ -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); } Loading