[XFS] Clean up i_flags and i_flags_lock handling.
SGI-PV: 956832 SGI-Modid: xfs-linux-melb:xfs-kern:27358a Signed-off-by: David Chinner <dgc@sgi.com> Signed-off-by: Nathan Scott <nscott@aconex.com> Signed-off-by: Tim Shimmin <tes@sgi.com>
This commit is contained in:
parent
2e2e7bb1fd
commit
7a18c38607
5 changed files with 57 additions and 35 deletions
|
@ -215,7 +215,7 @@ again:
|
|||
* If INEW is set this inode is being set up
|
||||
* we need to pause and try again.
|
||||
*/
|
||||
if (ip->i_flags & XFS_INEW) {
|
||||
if (xfs_iflags_test(ip, XFS_INEW)) {
|
||||
read_unlock(&ih->ih_lock);
|
||||
delay(1);
|
||||
XFS_STATS_INC(xs_ig_frecycle);
|
||||
|
@ -230,7 +230,7 @@ again:
|
|||
* on its way out of the system,
|
||||
* we need to pause and try again.
|
||||
*/
|
||||
if (ip->i_flags & XFS_IRECLAIM) {
|
||||
if (xfs_iflags_test(ip, XFS_IRECLAIM)) {
|
||||
read_unlock(&ih->ih_lock);
|
||||
delay(1);
|
||||
XFS_STATS_INC(xs_ig_frecycle);
|
||||
|
@ -243,9 +243,7 @@ again:
|
|||
|
||||
XFS_STATS_INC(xs_ig_found);
|
||||
|
||||
spin_lock(&ip->i_flags_lock);
|
||||
ip->i_flags &= ~XFS_IRECLAIMABLE;
|
||||
spin_unlock(&ip->i_flags_lock);
|
||||
xfs_iflags_clear(ip, XFS_IRECLAIMABLE);
|
||||
version = ih->ih_version;
|
||||
read_unlock(&ih->ih_lock);
|
||||
xfs_ihash_promote(ih, ip, version);
|
||||
|
@ -299,10 +297,7 @@ finish_inode:
|
|||
if (lock_flags != 0)
|
||||
xfs_ilock(ip, lock_flags);
|
||||
|
||||
spin_lock(&ip->i_flags_lock);
|
||||
ip->i_flags &= ~XFS_ISTALE;
|
||||
spin_unlock(&ip->i_flags_lock);
|
||||
|
||||
xfs_iflags_clear(ip, XFS_ISTALE);
|
||||
vn_trace_exit(vp, "xfs_iget.found",
|
||||
(inst_t *)__return_address);
|
||||
goto return_ip;
|
||||
|
@ -371,10 +366,7 @@ finish_inode:
|
|||
ih->ih_next = ip;
|
||||
ip->i_udquot = ip->i_gdquot = NULL;
|
||||
ih->ih_version++;
|
||||
spin_lock(&ip->i_flags_lock);
|
||||
ip->i_flags |= XFS_INEW;
|
||||
spin_unlock(&ip->i_flags_lock);
|
||||
|
||||
xfs_iflags_set(ip, XFS_INEW);
|
||||
write_unlock(&ih->ih_lock);
|
||||
|
||||
/*
|
||||
|
@ -625,7 +617,7 @@ xfs_iput_new(xfs_inode_t *ip,
|
|||
vn_trace_entry(vp, "xfs_iput_new", (inst_t *)__return_address);
|
||||
|
||||
if ((ip->i_d.di_mode == 0)) {
|
||||
ASSERT(!(ip->i_flags & XFS_IRECLAIMABLE));
|
||||
ASSERT(!xfs_iflags_test(ip, XFS_IRECLAIMABLE));
|
||||
vn_mark_bad(vp);
|
||||
}
|
||||
if (inode->i_state & I_NEW)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue