* After the following purge the vnode
* will no longer exist.
*/
- VMAP(vp, XFS_BHVTOI(vp->v_fbhv), vmap);
-
+ VMAP(vp, vmap);
vn_purge(vp, &vmap);
}
xfs_ino_t v_ino; /* inode # */
} vmap_t;
-#define VMAP(vp, ip, vmap) {(vmap).v_vfsp = (vp)->v_vfsp, \
- (vmap).v_number = (vp)->v_number, \
- (vmap).v_ino = (ip)->i_ino; }
+#define VMAP(vp, vmap) {(vmap).v_vfsp = (vp)->v_vfsp, \
+ (vmap).v_number = (vp)->v_number, \
+ (vmap).v_ino = (vp)->v_inode.i_ino; }
+
extern void vn_purge(struct vnode *, vmap_t *);
extern vnode_t *vn_get(struct vnode *, vmap_t *);
extern int vn_revalidate(struct vnode *);
* entry in the list anyway so we'll know below
* whether we reached the end or not.
*/
- VMAP(vp, ip, vmap);
+ VMAP(vp, vmap);
vp->v_flag |= VPURGE; /* OK for vn_purge */
XFS_MOUNT_IUNLOCK(mp);
rvp = XFS_ITOV(rip);
if ((rip->i_d.di_mode & IFMT) != IFDIR) {
cmn_err(CE_WARN, "XFS: corrupted root inode");
- VMAP(rvp, rip, vmap);
+ VMAP(rvp, vmap);
prdev("Root inode %llu is not a directory",
mp->m_dev, (unsigned long long)rip->i_ino);
rvp->v_flag |= VPURGE;
*/
cmn_err(CE_WARN, "XFS: failed to read RT inodes");
rvp->v_flag |= VPURGE;
- VMAP(rvp, rip, vmap);
+ VMAP(rvp, vmap);
VN_RELE(rvp);
vn_purge(rvp, &vmap);
goto error3;
* Sample vp mapping while holding the mplock, lest
* we come across a non-existent vnode.
*/
- VMAP(vp, ip, vmap);
+ VMAP(vp, vmap);
ireclaims = mp->m_ireclaims;
topino = mp->m_inodes;
XFS_MOUNT_IUNLOCK(mp);
vmap_t dqvmap; \
vnode_t *dqvp; \
dqvp = XFS_ITOV(ip); \
- VMAP(dqvp, ip, dqvmap); \
+ VMAP(dqvp, dqvmap); \
VN_RELE(dqvp); \
}
vmap_t vmap; /* vmap to delete vnode */
rbmvp = XFS_ITOV(mp->m_rbmip);
- VMAP(rbmvp, mp->m_rbmip, vmap);
+ VMAP(rbmvp, vmap);
VN_RELE(rbmvp);
vn_purge(rbmvp, &vmap);
return error;
* in taking a snapshot of the vnode version number
* for use in calling vn_get().
*/
- VMAP(vp, ip, vmap);
+ VMAP(vp, vmap);
IPOINTER_INSERT(ip, mp);
vp = vn_get(vp, &vmap);