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

Commit 222096ae authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Lachlan McIlroy
Browse files

[XFS] stop updating inode->i_blocks



The VFS doesn't use i_blocks, it's only used by generic_fillattr and the
generic quota code which XFS doesn't use. In XFS there is one use to check
whether we have an inline or out of line sumlink, but we can replace that
with a check of the XFS_IFINLINE inode flag.

SGI-PV: 971186
SGI-Modid: xfs-linux-melb:xfs-kern:30391a

Signed-off-by: default avatarChristoph Hellwig <hch@infradead.org>
Signed-off-by: default avatarLachlan McIlroy <lachlan@sgi.com>
parent de08dbc1
Loading
Loading
Loading
Loading
+0 −3
Original line number Diff line number Diff line
@@ -202,9 +202,6 @@ xfs_validate_fields(
	loff_t size;

	inode->i_nlink = ip->i_d.di_nlink;
	inode->i_blocks =
		XFS_FSB_TO_BB(ip->i_mount, ip->i_d.di_nblocks +
					   ip->i_delayed_blks);
	/* we're under i_sem so i_size can't change under us */
	size = XFS_ISIZE(ip);
	if (i_size_read(inode) != size)
+1 −3
Original line number Diff line number Diff line
@@ -569,7 +569,7 @@ xfs_set_inodeops(
		break;
	case S_IFLNK:
		inode->i_op = &xfs_symlink_inode_operations;
		if (inode->i_blocks)
		if (!(XFS_I(inode)->i_df.if_flags & XFS_IFINLINE))
			inode->i_mapping->a_ops = &xfs_address_space_operations;
		break;
	default:
@@ -606,8 +606,6 @@ xfs_revalidate_inode(

	inode->i_generation = ip->i_d.di_gen;
	i_size_write(inode, ip->i_d.di_size);
	inode->i_blocks =
		XFS_FSB_TO_BB(mp, ip->i_d.di_nblocks + ip->i_delayed_blks);
	inode->i_atime.tv_sec	= ip->i_d.di_atime.t_sec;
	inode->i_atime.tv_nsec	= ip->i_d.di_atime.t_nsec;
	inode->i_mtime.tv_sec	= ip->i_d.di_mtime.t_sec;
+0 −2
Original line number Diff line number Diff line
@@ -106,8 +106,6 @@ vn_revalidate(
	inode->i_nlink	    = ip->i_d.di_nlink;
	inode->i_uid	    = ip->i_d.di_uid;
	inode->i_gid	    = ip->i_d.di_gid;
	inode->i_blocks	    =
		XFS_FSB_TO_BB(mp, ip->i_d.di_nblocks + ip->i_delayed_blks);
	inode->i_mtime.tv_sec = ip->i_d.di_mtime.t_sec;
	inode->i_mtime.tv_nsec = ip->i_d.di_mtime.t_nsec;
	inode->i_ctime.tv_sec = ip->i_d.di_ctime.t_sec;
+0 −6
Original line number Diff line number Diff line
@@ -1536,9 +1536,6 @@ xfs_release(
			error = xfs_free_eofblocks(mp, ip, XFS_FREE_EOF_LOCK);
			if (error)
				return error;
			/* Update linux inode block count after free above */
			vn_to_inode(vp)->i_blocks = XFS_FSB_TO_BB(mp,
				ip->i_d.di_nblocks + ip->i_delayed_blks);
		}
	}

@@ -1612,9 +1609,6 @@ xfs_inactive(
			error = xfs_free_eofblocks(mp, ip, XFS_FREE_EOF_LOCK);
			if (error)
				return VN_INACTIVE_CACHE;
			/* Update linux inode block count after free above */
			vn_to_inode(vp)->i_blocks = XFS_FSB_TO_BB(mp,
				ip->i_d.di_nblocks + ip->i_delayed_blks);
		}
		goto out;
	}