- 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) {
- inode = LINVFS_GET_IP(vp);
- inode->i_mode = VTTOIF(va.va_type) | va.va_mode;
- inode->i_nlink = va.va_nlink;
- inode->i_uid = va.va_uid;
- inode->i_gid = va.va_gid;
- inode->i_blocks = va.va_nblocks;
- inode->i_mtime = va.va_mtime;
- inode->i_ctime = va.va_ctime;
- inode->i_atime = va.va_atime;
- if (va.va_xflags & XFS_XFLAG_IMMUTABLE)
- inode->i_flags |= S_IMMUTABLE;
- else
- inode->i_flags &= ~S_IMMUTABLE;
- if (va.va_xflags & XFS_XFLAG_APPEND)
- inode->i_flags |= S_APPEND;
- else
- inode->i_flags &= ~S_APPEND;
- if (va.va_xflags & XFS_XFLAG_SYNC)
- inode->i_flags |= S_SYNC;
- else
- inode->i_flags &= ~S_SYNC;
- if (va.va_xflags & XFS_XFLAG_NOATIME)
- inode->i_flags |= S_NOATIME;
- else
- inode->i_flags &= ~S_NOATIME;
+ vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address);
+ vattr->va_mask = XFS_AT_STAT | XFS_AT_XFLAGS;
+ error = bhv_vop_getattr(vp, vattr, 0, NULL);
+ if (likely(!error)) {
+ vn_revalidate_core(vp, vattr);