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

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

[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
Loading
Loading
Loading
Loading
+1 −58
Original line number Diff line number Diff line
@@ -78,10 +78,6 @@ vn_reclaim(
	}
	ASSERT(vp->v_fbhv == NULL);

	VN_LOCK(vp);
	vp->v_flag &= (VRECLM|VWAIT);
	VN_UNLOCK(vp, 0);

	vp->v_fbhv = NULL;

#ifdef XFS_VNODE_TRACE
@@ -92,31 +88,6 @@ vn_reclaim(
	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 *
vn_initialize(
	struct inode	*inode)
@@ -221,7 +192,6 @@ vn_purge(
{
	vn_trace_entry(vp, "vn_purge", (inst_t *)__return_address);

again:
	/*
	 * Check whether vp has already been reclaimed since our caller
	 * sampled its version while holding a filesystem cache lock that
@@ -233,19 +203,6 @@ again:
		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...
	 */
@@ -255,7 +212,6 @@ again:
	}

	XFS_STATS_DEC(vn_active);
	vp->v_flag |= VRECLM;
	VN_UNLOCK(vp, 0);

	/*
@@ -266,11 +222,6 @@ again:
	 */
	if (vn_reclaim(vp) != 0)
		panic("vn_purge: cannot reclaim");

	/*
	 * Wakeup anyone waiting for vp to be reclaimed.
	 */
	vn_wakeup(vp);
}

/*
@@ -315,11 +266,6 @@ vn_rele(
	 * return.
	 */
	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);

		/*
@@ -330,10 +276,7 @@ vn_rele(
			VOP_INACTIVE(vp, NULL, cache);

		VN_LOCK(vp);
		if (vp->v_flag & VWAIT)
			sv_broadcast(vptosync(vp));

		vp->v_flag &= ~(VINACT|VWAIT|VRECLM|VMODIFIED);
		vp->v_flag &= ~VMODIFIED;
	}

	VN_UNLOCK(vp, 0);
+0 −4
Original line number Diff line number Diff line
@@ -135,9 +135,6 @@ typedef enum {
/*
 * 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 */
					/* to the Linux inode state.	*/

@@ -489,7 +486,6 @@ typedef struct vattr {
	(VN_ISREG(vp) && ((mode) & (VSGID|(VEXEC>>3))) == VSGID)

extern void	vn_init(void);
extern int	vn_wait(struct vnode *);
extern vnode_t	*vn_initialize(struct inode *);

/*
+0 −11
Original line number Diff line number Diff line
@@ -505,7 +505,6 @@ xfs_iget(
	vnode_t		*vp = NULL;
	int		error;

retry:
	XFS_STATS_INC(xs_ig_attempts);

	if ((inode = iget_locked(XFS_MTOVFS(mp)->vfs_super, ino))) {
@@ -526,16 +525,6 @@ inode_allocate:
				iput(inode);
			}
		} 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)) {
				iput(inode);
				return EIO;