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

Commit 74564fb4 authored by Brian Foster's avatar Brian Foster Committed by Ben Myers
Browse files

xfs: clean up xfs_inactive() error handling, kill VN_INACTIVE_[NO]CACHE



The xfs_inactive() return value is meaningless. Turn xfs_inactive()
into a void function and clean up the error handling appropriately.
Kill the VN_INACTIVE_[NO]CACHE directives as they are not relevant
to Linux.

Signed-off-by: default avatarBrian Foster <bfoster@redhat.com>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
Signed-off-by: default avatarBen Myers <bpm@sgi.com>
parent 88877d2b
Loading
Loading
Loading
Loading
+11 −17
Original line number Diff line number Diff line
@@ -1790,7 +1790,7 @@ xfs_inactive_ifree(
 * now be truncated.  Also, we clear all of the read-ahead state
 * kept for the inode here since the file is now closed.
 */
int
void
xfs_inactive(
	xfs_inode_t	*ip)
{
@@ -1805,16 +1805,14 @@ xfs_inactive(
	if (ip->i_d.di_mode == 0) {
		ASSERT(ip->i_df.if_real_bytes == 0);
		ASSERT(ip->i_df.if_broot_bytes == 0);
		return VN_INACTIVE_CACHE;
		return;
	}

	mp = ip->i_mount;

	error = 0;

	/* If this is a read-only mount, don't do this (would generate I/O) */
	if (mp->m_flags & XFS_MOUNT_RDONLY)
		goto out;
		return;

	if (ip->i_d.di_nlink != 0) {
		/*
@@ -1822,12 +1820,10 @@ xfs_inactive(
		 * cache. Post-eof blocks must be freed, lest we end up with
		 * broken free space accounting.
		 */
		if (xfs_can_free_eofblocks(ip, true)) {
			error = xfs_free_eofblocks(mp, ip, false);
			if (error)
				return VN_INACTIVE_CACHE;
		}
		goto out;
		if (xfs_can_free_eofblocks(ip, true))
			xfs_free_eofblocks(mp, ip, false);

		return;
	}

	if (S_ISREG(ip->i_d.di_mode) &&
@@ -1837,14 +1833,14 @@ xfs_inactive(

	error = xfs_qm_dqattach(ip, 0);
	if (error)
		return VN_INACTIVE_CACHE;
		return;

	if (S_ISLNK(ip->i_d.di_mode))
		error = xfs_inactive_symlink(ip);
	else if (truncate)
		error = xfs_inactive_truncate(ip);
	if (error)
		goto out;
		return;

	/*
	 * If there are attributes associated with the file then blow them away
@@ -1857,7 +1853,7 @@ xfs_inactive(

		error = xfs_attr_inactive(ip);
		if (error)
			goto out;
			return;
	}

	if (ip->i_afp)
@@ -1870,14 +1866,12 @@ xfs_inactive(
	 */
	error = xfs_inactive_ifree(ip);
	if (error)
		goto out;
		return;

	/*
	 * Release the dquots held by inode, if any.
	 */
	xfs_qm_dqdetach(ip);
out:
	return VN_INACTIVE_CACHE;
}

/*
+1 −1
Original line number Diff line number Diff line
@@ -316,7 +316,7 @@ static inline int xfs_isiflocked(struct xfs_inode *ip)


int		xfs_release(struct xfs_inode *ip);
int		xfs_inactive(struct xfs_inode *ip);
void		xfs_inactive(struct xfs_inode *ip);
int		xfs_lookup(struct xfs_inode *dp, struct xfs_name *name,
			   struct xfs_inode **ipp, struct xfs_name *ci_name);
int		xfs_create(struct xfs_inode *dp, struct xfs_name *name,
+0 −8
Original line number Diff line number Diff line
@@ -24,14 +24,6 @@ struct file;
struct xfs_inode;
struct attrlist_cursor_kern;

/*
 * Return values for xfs_inactive.  A return value of
 * VN_INACTIVE_NOCACHE implies that the file system behavior
 * has disassociated its state and bhv_desc_t from the vnode.
 */
#define	VN_INACTIVE_CACHE	0
#define	VN_INACTIVE_NOCACHE	1

/*
 * Flags for read/write calls - same values as IRIX
 */