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

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
...@@ -1790,7 +1790,7 @@ xfs_inactive_ifree( ...@@ -1790,7 +1790,7 @@ xfs_inactive_ifree(
* now be truncated. Also, we clear all of the read-ahead state * now be truncated. Also, we clear all of the read-ahead state
* kept for the inode here since the file is now closed. * kept for the inode here since the file is now closed.
*/ */
int void
xfs_inactive( xfs_inactive(
xfs_inode_t *ip) xfs_inode_t *ip)
{ {
...@@ -1805,16 +1805,14 @@ xfs_inactive( ...@@ -1805,16 +1805,14 @@ xfs_inactive(
if (ip->i_d.di_mode == 0) { if (ip->i_d.di_mode == 0) {
ASSERT(ip->i_df.if_real_bytes == 0); ASSERT(ip->i_df.if_real_bytes == 0);
ASSERT(ip->i_df.if_broot_bytes == 0); ASSERT(ip->i_df.if_broot_bytes == 0);
return VN_INACTIVE_CACHE; return;
} }
mp = ip->i_mount; mp = ip->i_mount;
error = 0;
/* If this is a read-only mount, don't do this (would generate I/O) */ /* If this is a read-only mount, don't do this (would generate I/O) */
if (mp->m_flags & XFS_MOUNT_RDONLY) if (mp->m_flags & XFS_MOUNT_RDONLY)
goto out; return;
if (ip->i_d.di_nlink != 0) { if (ip->i_d.di_nlink != 0) {
/* /*
...@@ -1822,12 +1820,10 @@ xfs_inactive( ...@@ -1822,12 +1820,10 @@ xfs_inactive(
* cache. Post-eof blocks must be freed, lest we end up with * cache. Post-eof blocks must be freed, lest we end up with
* broken free space accounting. * broken free space accounting.
*/ */
if (xfs_can_free_eofblocks(ip, true)) { if (xfs_can_free_eofblocks(ip, true))
error = xfs_free_eofblocks(mp, ip, false); xfs_free_eofblocks(mp, ip, false);
if (error)
return VN_INACTIVE_CACHE; return;
}
goto out;
} }
if (S_ISREG(ip->i_d.di_mode) && if (S_ISREG(ip->i_d.di_mode) &&
...@@ -1837,14 +1833,14 @@ xfs_inactive( ...@@ -1837,14 +1833,14 @@ xfs_inactive(
error = xfs_qm_dqattach(ip, 0); error = xfs_qm_dqattach(ip, 0);
if (error) if (error)
return VN_INACTIVE_CACHE; return;
if (S_ISLNK(ip->i_d.di_mode)) if (S_ISLNK(ip->i_d.di_mode))
error = xfs_inactive_symlink(ip); error = xfs_inactive_symlink(ip);
else if (truncate) else if (truncate)
error = xfs_inactive_truncate(ip); error = xfs_inactive_truncate(ip);
if (error) if (error)
goto out; return;
/* /*
* If there are attributes associated with the file then blow them away * If there are attributes associated with the file then blow them away
...@@ -1857,7 +1853,7 @@ xfs_inactive( ...@@ -1857,7 +1853,7 @@ xfs_inactive(
error = xfs_attr_inactive(ip); error = xfs_attr_inactive(ip);
if (error) if (error)
goto out; return;
} }
if (ip->i_afp) if (ip->i_afp)
...@@ -1870,14 +1866,12 @@ xfs_inactive( ...@@ -1870,14 +1866,12 @@ xfs_inactive(
*/ */
error = xfs_inactive_ifree(ip); error = xfs_inactive_ifree(ip);
if (error) if (error)
goto out; return;
/* /*
* Release the dquots held by inode, if any. * Release the dquots held by inode, if any.
*/ */
xfs_qm_dqdetach(ip); xfs_qm_dqdetach(ip);
out:
return VN_INACTIVE_CACHE;
} }
/* /*
......
...@@ -316,7 +316,7 @@ static inline int xfs_isiflocked(struct xfs_inode *ip) ...@@ -316,7 +316,7 @@ static inline int xfs_isiflocked(struct xfs_inode *ip)
int xfs_release(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, int xfs_lookup(struct xfs_inode *dp, struct xfs_name *name,
struct xfs_inode **ipp, struct xfs_name *ci_name); struct xfs_inode **ipp, struct xfs_name *ci_name);
int xfs_create(struct xfs_inode *dp, struct xfs_name *name, int xfs_create(struct xfs_inode *dp, struct xfs_name *name,
......
...@@ -24,14 +24,6 @@ struct file; ...@@ -24,14 +24,6 @@ struct file;
struct xfs_inode; struct xfs_inode;
struct attrlist_cursor_kern; 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 * Flags for read/write calls - same values as IRIX
*/ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment