vn_initialize(
struct inode *inode)
{
- struct vnode *vp = vn_from_inode(inode);
+ struct vnode *vp = LINVFS_GET_VP(inode);
XFS_STATS_INC(vn_active);
XFS_STATS_INC(vn_alloc);
vp->v_trace = ktrace_alloc(VNODE_TRACE_SIZE, KM_SLEEP);
#endif /* XFS_VNODE_TRACE */
- vn_trace_exit(vp, __FUNCTION__, (inst_t *)__return_address);
+ vn_trace_exit(vp, "vn_initialize", (inst_t *)__return_address);
return vp;
}
struct vnode *vp,
vattr_t *vap)
{
- struct inode *inode = vn_to_inode(vp);
+ struct inode *inode = LINVFS_GET_IP(vp);
inode->i_mode = vap->va_mode;
inode->i_nlink = vap->va_nlink;
* Revalidate the Linux inode from the vnode.
*/
int
-__vn_revalidate(
- struct vnode *vp,
- struct vattr *vattr)
+vn_revalidate(
+ struct vnode *vp)
{
+ vattr_t va;
int error;
- vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address);
- vattr->va_mask = XFS_AT_STAT | XFS_AT_XFLAGS;
- VOP_GETATTR(vp, vattr, 0, NULL, error);
- if (likely(!error)) {
- vn_revalidate_core(vp, vattr);
+ vn_trace_entry(vp, "vn_revalidate", (inst_t *)__return_address);
+ ASSERT(vp->v_fbhv != NULL);
+
+ va.va_mask = XFS_AT_STAT|XFS_AT_XFLAGS;
+ VOP_GETATTR(vp, &va, 0, NULL, error);
+ if (!error) {
+ vn_revalidate_core(vp, &va);
VUNMODIFY(vp);
}
return -error;
}
-int
-vn_revalidate(
- struct vnode *vp)
-{
- vattr_t vattr;
-
- return __vn_revalidate(vp, &vattr);
-}
-
/*
* Add a reference to a referenced vnode.
*/
XFS_STATS_INC(vn_hold);
VN_LOCK(vp);
- inode = igrab(vn_to_inode(vp));
+ inode = igrab(LINVFS_GET_IP(vp));
ASSERT(inode);
VN_UNLOCK(vp, 0);