Commit 965e0a1a authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Darrick J. Wong
Browse files

xfs: move the di_flushiter field to struct xfs_inode



In preparation of removing the historic icinode struct, move the
flushiter field into the containing xfs_inode structure.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
Signed-off-by: default avatarDarrick J. Wong <djwong@kernel.org>
parent b33ce57d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -193,7 +193,7 @@ xfs_inode_from_disk(
	 * inode. If the inode is unused, mode is zero and we shouldn't mess
	 * with the uninitialized part of it.
	 */
	to->di_flushiter = be16_to_cpu(from->di_flushiter);
	ip->i_flushiter = be16_to_cpu(from->di_flushiter);
	inode->i_generation = be32_to_cpu(from->di_gen);
	inode->i_mode = be16_to_cpu(from->di_mode);
	if (!inode->i_mode)
@@ -327,7 +327,7 @@ xfs_inode_to_disk(
		to->di_flushiter = 0;
	} else {
		to->di_version = 2;
		to->di_flushiter = cpu_to_be16(from->di_flushiter);
		to->di_flushiter = cpu_to_be16(ip->i_flushiter);
	}
}

+0 −1
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@ struct xfs_dinode;
 * format specific structures at the appropriate time.
 */
struct xfs_icdinode {
	uint16_t	di_flushiter;	/* incremented on flush */
	uint8_t		di_forkoff;	/* attr fork offs, <<3 for 64b align */
	uint16_t	di_flags;	/* random flags, XFS_DIFLAG_... */

+1 −1
Original line number Diff line number Diff line
@@ -499,7 +499,7 @@ xfs_iget_cache_miss(
	 * simply build the new inode core with a random generation number.
	 *
	 * For version 4 (and older) superblocks, log recovery is dependent on
	 * the di_flushiter field being initialised from the current on-disk
	 * the i_flushiter field being initialised from the current on-disk
	 * value and hence we must also read the inode off disk even when
	 * initializing new inodes.
	 */
+9 −10
Original line number Diff line number Diff line
@@ -3454,16 +3454,15 @@ xfs_iflush(
	}

	/*
	 * Inode item log recovery for v2 inodes are dependent on the
	 * di_flushiter count for correct sequencing. We bump the flush
	 * iteration count so we can detect flushes which postdate a log record
	 * during recovery. This is redundant as we now log every change and
	 * hence this can't happen but we need to still do it to ensure
	 * backwards compatibility with old kernels that predate logging all
	 * inode changes.
	 * Inode item log recovery for v2 inodes are dependent on the flushiter
	 * count for correct sequencing.  We bump the flush iteration count so
	 * we can detect flushes which postdate a log record during recovery.
	 * This is redundant as we now log every change and hence this can't
	 * happen but we need to still do it to ensure backwards compatibility
	 * with old kernels that predate logging all inode changes.
	 */
	if (!xfs_sb_version_has_v3inode(&mp->m_sb))
		ip->i_d.di_flushiter++;
		ip->i_flushiter++;

	/*
	 * If there are inline format data / attr forks attached to this inode,
@@ -3484,8 +3483,8 @@ xfs_iflush(
	xfs_inode_to_disk(ip, dip, iip->ili_item.li_lsn);

	/* Wrap, we never let the log put out DI_MAX_FLUSH */
	if (ip->i_d.di_flushiter == DI_MAX_FLUSH)
		ip->i_d.di_flushiter = 0;
	if (ip->i_flushiter == DI_MAX_FLUSH)
		ip->i_flushiter = 0;

	xfs_iflush_fork(ip, dip, iip, XFS_DATA_FORK);
	if (XFS_IFORK_Q(ip))
+1 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ typedef struct xfs_inode {
	prid_t			i_projid;	/* owner's project id */
	xfs_extlen_t		i_extsize;	/* basic/minimum extent size */
	xfs_extlen_t		i_cowextsize;	/* basic cow extent size */
	uint16_t		i_flushiter;	/* incremented on flush */

	struct xfs_icdinode	i_d;		/* most of ondisk inode */

Loading