Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 13059ff0 authored by Nathan Scott's avatar Nathan Scott
Browse files

[XFS] Reverse the sense of COMPAT_ATTR and ATTR2, keeps it simple and


consistent.

SGI-PV: 941645
SGI-Modid: xfs-linux-melb:xfs-kern:202961a

Signed-off-by: default avatarNathan Scott <nathans@sgi.com>
parent e13a73f0
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -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;
@@ -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)) {
@@ -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
@@ -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 =
@@ -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));
@@ -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
+6 −6
Original line number Diff line number Diff line
@@ -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:
@@ -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];
+1 −1
Original line number Diff line number Diff line
@@ -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
+1 −1
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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