Commit 592cb26b authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Nathan Scott

[XFS] remove unessecary vnode flags

SGI-PV: 934766
SGI-Modid: xfs-linux:xfs-kern:196852a
Signed-off-by: default avatarChristoph Hellwig <hch@sgi.com>
Signed-off-by: default avatarNathan Scott <nathans@sgi.com>
parent 760dea67
...@@ -78,10 +78,6 @@ vn_reclaim( ...@@ -78,10 +78,6 @@ vn_reclaim(
} }
ASSERT(vp->v_fbhv == NULL); ASSERT(vp->v_fbhv == NULL);
VN_LOCK(vp);
vp->v_flag &= (VRECLM|VWAIT);
VN_UNLOCK(vp, 0);
vp->v_fbhv = NULL; vp->v_fbhv = NULL;
#ifdef XFS_VNODE_TRACE #ifdef XFS_VNODE_TRACE
...@@ -92,31 +88,6 @@ vn_reclaim( ...@@ -92,31 +88,6 @@ vn_reclaim(
return 0; return 0;
} }
STATIC void
vn_wakeup(
struct vnode *vp)
{
VN_LOCK(vp);
if (vp->v_flag & VWAIT)
sv_broadcast(vptosync(vp));
vp->v_flag &= ~(VRECLM|VWAIT|VMODIFIED);
VN_UNLOCK(vp, 0);
}
int
vn_wait(
struct vnode *vp)
{
VN_LOCK(vp);
if (vp->v_flag & (VINACT | VRECLM)) {
vp->v_flag |= VWAIT;
sv_wait(vptosync(vp), PINOD, &vp->v_lock, 0);
return 1;
}
VN_UNLOCK(vp, 0);
return 0;
}
struct vnode * struct vnode *
vn_initialize( vn_initialize(
struct inode *inode) struct inode *inode)
...@@ -221,7 +192,6 @@ vn_purge( ...@@ -221,7 +192,6 @@ vn_purge(
{ {
vn_trace_entry(vp, "vn_purge", (inst_t *)__return_address); vn_trace_entry(vp, "vn_purge", (inst_t *)__return_address);
again:
/* /*
* Check whether vp has already been reclaimed since our caller * Check whether vp has already been reclaimed since our caller
* sampled its version while holding a filesystem cache lock that * sampled its version while holding a filesystem cache lock that
...@@ -233,19 +203,6 @@ vn_purge( ...@@ -233,19 +203,6 @@ vn_purge(
return; return;
} }
/*
* If vp is being reclaimed or inactivated, wait until it is inert,
* then proceed. Can't assume that vnode is actually reclaimed
* just because the reclaimed flag is asserted -- a vn_alloc
* reclaim can fail.
*/
if (vp->v_flag & (VINACT | VRECLM)) {
ASSERT(vn_count(vp) == 0);
vp->v_flag |= VWAIT;
sv_wait(vptosync(vp), PINOD, &vp->v_lock, 0);
goto again;
}
/* /*
* Another process could have raced in and gotten this vnode... * Another process could have raced in and gotten this vnode...
*/ */
...@@ -255,7 +212,6 @@ vn_purge( ...@@ -255,7 +212,6 @@ vn_purge(
} }
XFS_STATS_DEC(vn_active); XFS_STATS_DEC(vn_active);
vp->v_flag |= VRECLM;
VN_UNLOCK(vp, 0); VN_UNLOCK(vp, 0);
/* /*
...@@ -266,11 +222,6 @@ vn_purge( ...@@ -266,11 +222,6 @@ vn_purge(
*/ */
if (vn_reclaim(vp) != 0) if (vn_reclaim(vp) != 0)
panic("vn_purge: cannot reclaim"); panic("vn_purge: cannot reclaim");
/*
* Wakeup anyone waiting for vp to be reclaimed.
*/
vn_wakeup(vp);
} }
/* /*
...@@ -315,11 +266,6 @@ vn_rele( ...@@ -315,11 +266,6 @@ vn_rele(
* return. * return.
*/ */
if (!vcnt) { if (!vcnt) {
/*
* As soon as we turn this on, noone can find us in vn_get
* until we turn off VINACT or VRECLM
*/
vp->v_flag |= VINACT;
VN_UNLOCK(vp, 0); VN_UNLOCK(vp, 0);
/* /*
...@@ -330,10 +276,7 @@ vn_rele( ...@@ -330,10 +276,7 @@ vn_rele(
VOP_INACTIVE(vp, NULL, cache); VOP_INACTIVE(vp, NULL, cache);
VN_LOCK(vp); VN_LOCK(vp);
if (vp->v_flag & VWAIT) vp->v_flag &= ~VMODIFIED;
sv_broadcast(vptosync(vp));
vp->v_flag &= ~(VINACT|VWAIT|VRECLM|VMODIFIED);
} }
VN_UNLOCK(vp, 0); VN_UNLOCK(vp, 0);
......
...@@ -135,9 +135,6 @@ typedef enum { ...@@ -135,9 +135,6 @@ typedef enum {
/* /*
* Vnode flags. * Vnode flags.
*/ */
#define VINACT 0x1 /* vnode is being inactivated */
#define VRECLM 0x2 /* vnode is being reclaimed */
#define VWAIT 0x4 /* waiting for VINACT/VRECLM to end */
#define VMODIFIED 0x8 /* XFS inode state possibly differs */ #define VMODIFIED 0x8 /* XFS inode state possibly differs */
/* to the Linux inode state. */ /* to the Linux inode state. */
...@@ -489,7 +486,6 @@ typedef struct vattr { ...@@ -489,7 +486,6 @@ typedef struct vattr {
(VN_ISREG(vp) && ((mode) & (VSGID|(VEXEC>>3))) == VSGID) (VN_ISREG(vp) && ((mode) & (VSGID|(VEXEC>>3))) == VSGID)
extern void vn_init(void); extern void vn_init(void);
extern int vn_wait(struct vnode *);
extern vnode_t *vn_initialize(struct inode *); extern vnode_t *vn_initialize(struct inode *);
/* /*
......
...@@ -505,7 +505,6 @@ xfs_iget( ...@@ -505,7 +505,6 @@ xfs_iget(
vnode_t *vp = NULL; vnode_t *vp = NULL;
int error; int error;
retry:
XFS_STATS_INC(xs_ig_attempts); XFS_STATS_INC(xs_ig_attempts);
if ((inode = iget_locked(XFS_MTOVFS(mp)->vfs_super, ino))) { if ((inode = iget_locked(XFS_MTOVFS(mp)->vfs_super, ino))) {
...@@ -526,16 +525,6 @@ xfs_iget( ...@@ -526,16 +525,6 @@ xfs_iget(
iput(inode); iput(inode);
} }
} else { } else {
/* These are true if the inode is in inactive or
* reclaim. The linux inode is about to go away,
* wait for that path to finish, and try again.
*/
if (vp->v_flag & (VINACT | VRECLM)) {
vn_wait(vp);
iput(inode);
goto retry;
}
if (is_bad_inode(inode)) { if (is_bad_inode(inode)) {
iput(inode); iput(inode);
return EIO; return EIO;
......
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