[XFS] Fix assertion in xfs_attr_shortform_remove().
authorLachlan McIlroy <lachlan@sgi.com>
Sat, 10 Feb 2007 07:36:53 +0000 (18:36 +1100)
committerTim Shimmin <tes@sgi.com>
Sat, 10 Feb 2007 07:36:53 +0000 (18:36 +1100)
SGI-PV: 960791
SGI-Modid: xfs-linux-melb:xfs-kern:28021a

Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Signed-off-by: Barry Naujok <bnaujok@sgi.com>
Signed-off-by: Tim Shimmin <tes@sgi.com>
fs/xfs/xfs_attr_leaf.c

index e4664136843d9675d1daeea68d3ae5c5d31865f5..8eab73e8340ac223c00d617750845d1cee7c8fbd 100644 (file)
@@ -392,7 +392,8 @@ 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_ATTR2));
+                       !(mp->m_flags & XFS_MOUNT_ATTR2) ||
+                       dp->i_d.di_format == XFS_DINODE_FMT_BTREE);
                dp->i_afp->if_ext_max =
                        XFS_IFORK_ASIZE(dp) / (uint)sizeof(xfs_bmbt_rec_t);
                dp->i_df.if_ext_max =