提交 74564fb4 编写于 作者: B Brian Foster 提交者: 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: NBrian Foster <bfoster@redhat.com>
Reviewed-by: NDave Chinner <dchinner@redhat.com>
Signed-off-by: NBen Myers <bpm@sgi.com>
上级 88877d2b
......@@ -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;
}
/*
......
......@@ -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,
......
......@@ -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
*/
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册