Loading fs/xfs/xfs_attr_leaf.c +6 −6 Original line number Diff line number Diff line Loading @@ -128,7 +128,7 @@ 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 (!(mp->m_flags & XFS_MOUNT_ATTR2)) { if (bytes <= XFS_IFORK_ASIZE(dp)) return mp->m_attroffset >> 3; return 0; Loading Loading @@ -157,7 +157,7 @@ xfs_sbversion_add_attr2(xfs_mount_t *mp, xfs_trans_t *tp) { unsigned long s; if (!(mp->m_flags & XFS_MOUNT_COMPAT_ATTR) && if ((mp->m_flags & XFS_MOUNT_ATTR2) && !(XFS_SB_VERSION_HASATTR2(&mp->m_sb))) { s = XFS_SB_LOCK(mp); if (!XFS_SB_VERSION_HASATTR2(&mp->m_sb)) { Loading Loading @@ -311,7 +311,7 @@ xfs_attr_shortform_remove(xfs_da_args_t *args) */ totsize -= size; if (totsize == sizeof(xfs_attr_sf_hdr_t) && !args->addname && !(mp->m_flags & XFS_MOUNT_COMPAT_ATTR)) { (mp->m_flags & XFS_MOUNT_ATTR2)) { /* * Last attribute now removed, revert to original * inode format making all literal area available Loading @@ -330,7 +330,7 @@ xfs_attr_shortform_remove(xfs_da_args_t *args) dp->i_d.di_forkoff = xfs_attr_shortform_bytesfit(dp, totsize); ASSERT(dp->i_d.di_forkoff); ASSERT(totsize > sizeof(xfs_attr_sf_hdr_t) || args->addname || (mp->m_flags & XFS_MOUNT_COMPAT_ATTR)); !(mp->m_flags & XFS_MOUNT_ATTR2)); dp->i_afp->if_ext_max = XFS_IFORK_ASIZE(dp) / (uint)sizeof(xfs_bmbt_rec_t); dp->i_df.if_ext_max = Loading Loading @@ -739,7 +739,7 @@ xfs_attr_shortform_allfit(xfs_dabuf_t *bp, xfs_inode_t *dp) + name_loc->namelen + INT_GET(name_loc->valuelen, ARCH_CONVERT); } if (!(dp->i_mount->m_flags & XFS_MOUNT_COMPAT_ATTR) && if ((dp->i_mount->m_flags & XFS_MOUNT_ATTR2) && (bytes == sizeof(struct xfs_attr_sf_hdr))) return(-1); return(xfs_attr_shortform_bytesfit(dp, bytes)); Loading Loading @@ -778,7 +778,7 @@ xfs_attr_leaf_to_shortform(xfs_dabuf_t *bp, xfs_da_args_t *args, int forkoff) goto out; if (forkoff == -1) { ASSERT(!(dp->i_mount->m_flags & XFS_MOUNT_COMPAT_ATTR)); ASSERT(dp->i_mount->m_flags & XFS_MOUNT_ATTR2); /* * Last attribute was removed, revert to original Loading fs/xfs/xfs_bmap.c +6 −6 Original line number Diff line number Diff line Loading @@ -3948,7 +3948,7 @@ xfs_bmap_add_attrfork( ip->i_d.di_forkoff = xfs_attr_shortform_bytesfit(ip, size); if (!ip->i_d.di_forkoff) ip->i_d.di_forkoff = mp->m_attroffset >> 3; else if (!(mp->m_flags & XFS_MOUNT_COMPAT_ATTR)) else if (mp->m_flags & XFS_MOUNT_ATTR2) version = 2; break; default: Loading Loading @@ -4096,13 +4096,13 @@ xfs_bmap_compute_maxlevels( */ if (whichfork == XFS_DATA_FORK) { maxleafents = MAXEXTNUM; sz = (mp->m_flags & XFS_MOUNT_COMPAT_ATTR) ? mp->m_attroffset : XFS_BMDR_SPACE_CALC(MINDBTPTRS); sz = (mp->m_flags & XFS_MOUNT_ATTR2) ? XFS_BMDR_SPACE_CALC(MINDBTPTRS) : mp->m_attroffset; } else { maxleafents = MAXAEXTNUM; sz = (mp->m_flags & XFS_MOUNT_COMPAT_ATTR) ? mp->m_sb.sb_inodesize - mp->m_attroffset : XFS_BMDR_SPACE_CALC(MINABTPTRS); sz = (mp->m_flags & XFS_MOUNT_ATTR2) ? XFS_BMDR_SPACE_CALC(MINABTPTRS) : mp->m_sb.sb_inodesize - mp->m_attroffset; } maxrootrecs = (int)XFS_BTREE_BLOCK_MAXRECS(sz, xfs_bmdr, 0); minleafrecs = mp->m_bmap_dmnr[0]; Loading fs/xfs/xfs_clnt.h +1 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ struct xfs_mount_args { /* * XFS mount option flags -- args->flags1 */ #define XFSMNT_COMPAT_ATTR 0x00000001 /* do not use ATTR2 format */ #define XFSMNT_ATTR2 0x00000001 /* allow ATTR2 EA format */ #define XFSMNT_WSYNC 0x00000002 /* safe mode nfs mount * compatible */ #define XFSMNT_INO64 0x00000004 /* move inode numbers up Loading fs/xfs/xfs_dir.c +1 −1 Original line number Diff line number Diff line Loading @@ -176,7 +176,7 @@ xfs_dir_mount(xfs_mount_t *mp) uint shortcount, leafcount, count; mp->m_dirversion = 1; if (mp->m_flags & XFS_MOUNT_COMPAT_ATTR) { if (!(mp->m_flags & XFS_MOUNT_ATTR2)) { shortcount = (mp->m_attroffset - (uint)sizeof(xfs_dir_sf_hdr_t)) / (uint)sizeof(xfs_dir_sf_entry_t); Loading fs/xfs/xfs_mount.h +1 −1 Original line number Diff line number Diff line Loading @@ -393,7 +393,7 @@ typedef struct xfs_mount { user */ #define XFS_MOUNT_NOALIGN (1ULL << 7) /* turn off stripe alignment allocations */ #define XFS_MOUNT_COMPAT_ATTR (1ULL << 8) /* do not use attr2 format */ #define XFS_MOUNT_ATTR2 (1ULL << 8) /* allow use of attr2 format */ /* (1ULL << 9) -- currently unused */ #define XFS_MOUNT_NORECOVERY (1ULL << 10) /* no recovery - dirty fs */ #define XFS_MOUNT_SHARED (1ULL << 11) /* shared mount */ Loading Loading
fs/xfs/xfs_attr_leaf.c +6 −6 Original line number Diff line number Diff line Loading @@ -128,7 +128,7 @@ 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 (!(mp->m_flags & XFS_MOUNT_ATTR2)) { if (bytes <= XFS_IFORK_ASIZE(dp)) return mp->m_attroffset >> 3; return 0; Loading Loading @@ -157,7 +157,7 @@ xfs_sbversion_add_attr2(xfs_mount_t *mp, xfs_trans_t *tp) { unsigned long s; if (!(mp->m_flags & XFS_MOUNT_COMPAT_ATTR) && if ((mp->m_flags & XFS_MOUNT_ATTR2) && !(XFS_SB_VERSION_HASATTR2(&mp->m_sb))) { s = XFS_SB_LOCK(mp); if (!XFS_SB_VERSION_HASATTR2(&mp->m_sb)) { Loading Loading @@ -311,7 +311,7 @@ xfs_attr_shortform_remove(xfs_da_args_t *args) */ totsize -= size; if (totsize == sizeof(xfs_attr_sf_hdr_t) && !args->addname && !(mp->m_flags & XFS_MOUNT_COMPAT_ATTR)) { (mp->m_flags & XFS_MOUNT_ATTR2)) { /* * Last attribute now removed, revert to original * inode format making all literal area available Loading @@ -330,7 +330,7 @@ xfs_attr_shortform_remove(xfs_da_args_t *args) dp->i_d.di_forkoff = xfs_attr_shortform_bytesfit(dp, totsize); ASSERT(dp->i_d.di_forkoff); ASSERT(totsize > sizeof(xfs_attr_sf_hdr_t) || args->addname || (mp->m_flags & XFS_MOUNT_COMPAT_ATTR)); !(mp->m_flags & XFS_MOUNT_ATTR2)); dp->i_afp->if_ext_max = XFS_IFORK_ASIZE(dp) / (uint)sizeof(xfs_bmbt_rec_t); dp->i_df.if_ext_max = Loading Loading @@ -739,7 +739,7 @@ xfs_attr_shortform_allfit(xfs_dabuf_t *bp, xfs_inode_t *dp) + name_loc->namelen + INT_GET(name_loc->valuelen, ARCH_CONVERT); } if (!(dp->i_mount->m_flags & XFS_MOUNT_COMPAT_ATTR) && if ((dp->i_mount->m_flags & XFS_MOUNT_ATTR2) && (bytes == sizeof(struct xfs_attr_sf_hdr))) return(-1); return(xfs_attr_shortform_bytesfit(dp, bytes)); Loading Loading @@ -778,7 +778,7 @@ xfs_attr_leaf_to_shortform(xfs_dabuf_t *bp, xfs_da_args_t *args, int forkoff) goto out; if (forkoff == -1) { ASSERT(!(dp->i_mount->m_flags & XFS_MOUNT_COMPAT_ATTR)); ASSERT(dp->i_mount->m_flags & XFS_MOUNT_ATTR2); /* * Last attribute was removed, revert to original Loading
fs/xfs/xfs_bmap.c +6 −6 Original line number Diff line number Diff line Loading @@ -3948,7 +3948,7 @@ xfs_bmap_add_attrfork( ip->i_d.di_forkoff = xfs_attr_shortform_bytesfit(ip, size); if (!ip->i_d.di_forkoff) ip->i_d.di_forkoff = mp->m_attroffset >> 3; else if (!(mp->m_flags & XFS_MOUNT_COMPAT_ATTR)) else if (mp->m_flags & XFS_MOUNT_ATTR2) version = 2; break; default: Loading Loading @@ -4096,13 +4096,13 @@ xfs_bmap_compute_maxlevels( */ if (whichfork == XFS_DATA_FORK) { maxleafents = MAXEXTNUM; sz = (mp->m_flags & XFS_MOUNT_COMPAT_ATTR) ? mp->m_attroffset : XFS_BMDR_SPACE_CALC(MINDBTPTRS); sz = (mp->m_flags & XFS_MOUNT_ATTR2) ? XFS_BMDR_SPACE_CALC(MINDBTPTRS) : mp->m_attroffset; } else { maxleafents = MAXAEXTNUM; sz = (mp->m_flags & XFS_MOUNT_COMPAT_ATTR) ? mp->m_sb.sb_inodesize - mp->m_attroffset : XFS_BMDR_SPACE_CALC(MINABTPTRS); sz = (mp->m_flags & XFS_MOUNT_ATTR2) ? XFS_BMDR_SPACE_CALC(MINABTPTRS) : mp->m_sb.sb_inodesize - mp->m_attroffset; } maxrootrecs = (int)XFS_BTREE_BLOCK_MAXRECS(sz, xfs_bmdr, 0); minleafrecs = mp->m_bmap_dmnr[0]; Loading
fs/xfs/xfs_clnt.h +1 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ struct xfs_mount_args { /* * XFS mount option flags -- args->flags1 */ #define XFSMNT_COMPAT_ATTR 0x00000001 /* do not use ATTR2 format */ #define XFSMNT_ATTR2 0x00000001 /* allow ATTR2 EA format */ #define XFSMNT_WSYNC 0x00000002 /* safe mode nfs mount * compatible */ #define XFSMNT_INO64 0x00000004 /* move inode numbers up Loading
fs/xfs/xfs_dir.c +1 −1 Original line number Diff line number Diff line Loading @@ -176,7 +176,7 @@ xfs_dir_mount(xfs_mount_t *mp) uint shortcount, leafcount, count; mp->m_dirversion = 1; if (mp->m_flags & XFS_MOUNT_COMPAT_ATTR) { if (!(mp->m_flags & XFS_MOUNT_ATTR2)) { shortcount = (mp->m_attroffset - (uint)sizeof(xfs_dir_sf_hdr_t)) / (uint)sizeof(xfs_dir_sf_entry_t); Loading
fs/xfs/xfs_mount.h +1 −1 Original line number Diff line number Diff line Loading @@ -393,7 +393,7 @@ typedef struct xfs_mount { user */ #define XFS_MOUNT_NOALIGN (1ULL << 7) /* turn off stripe alignment allocations */ #define XFS_MOUNT_COMPAT_ATTR (1ULL << 8) /* do not use attr2 format */ #define XFS_MOUNT_ATTR2 (1ULL << 8) /* allow use of attr2 format */ /* (1ULL << 9) -- currently unused */ #define XFS_MOUNT_NORECOVERY (1ULL << 10) /* no recovery - dirty fs */ #define XFS_MOUNT_SHARED (1ULL << 11) /* shared mount */ Loading