Changeset View
Changeset View
Standalone View
Standalone View
head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
Show First 20 Lines • Show All 5,308 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
vnode_t *vp = ap->a_vp; | vnode_t *vp = ap->a_vp; | ||||
zfs_inactive(vp, ap->a_td->td_ucred, NULL); | zfs_inactive(vp, ap->a_td->td_ucred, NULL); | ||||
return (0); | return (0); | ||||
} | } | ||||
static int | static int | ||||
zfs_freebsd_need_inactive(ap) | |||||
struct vop_need_inactive_args /* { | |||||
struct vnode *a_vp; | |||||
struct thread *a_td; | |||||
} */ *ap; | |||||
{ | |||||
vnode_t *vp = ap->a_vp; | |||||
znode_t *zp = VTOZ(vp); | |||||
zfsvfs_t *zfsvfs = zp->z_zfsvfs; | |||||
int need; | |||||
if (vn_need_pageq_flush(vp)) | |||||
return (1); | |||||
if (!rw_tryenter(&zfsvfs->z_teardown_inactive_lock, RW_READER)) | |||||
return (1); | |||||
need = (zp->z_sa_hdl == NULL || zp->z_unlinked || zp->z_atime_dirty); | |||||
rw_exit(&zfsvfs->z_teardown_inactive_lock); | |||||
return (need); | |||||
} | |||||
static int | |||||
zfs_freebsd_reclaim(ap) | zfs_freebsd_reclaim(ap) | ||||
struct vop_reclaim_args /* { | struct vop_reclaim_args /* { | ||||
struct vnode *a_vp; | struct vnode *a_vp; | ||||
struct thread *a_td; | struct thread *a_td; | ||||
} */ *ap; | } */ *ap; | ||||
{ | { | ||||
vnode_t *vp = ap->a_vp; | vnode_t *vp = ap->a_vp; | ||||
znode_t *zp = VTOZ(vp); | znode_t *zp = VTOZ(vp); | ||||
▲ Show 20 Lines • Show All 619 Lines • ▼ Show 20 Lines | |||||
struct vop_vector zfs_vnodeops; | struct vop_vector zfs_vnodeops; | ||||
struct vop_vector zfs_fifoops; | struct vop_vector zfs_fifoops; | ||||
struct vop_vector zfs_shareops; | struct vop_vector zfs_shareops; | ||||
struct vop_vector zfs_vnodeops = { | struct vop_vector zfs_vnodeops = { | ||||
.vop_default = &default_vnodeops, | .vop_default = &default_vnodeops, | ||||
.vop_inactive = zfs_freebsd_inactive, | .vop_inactive = zfs_freebsd_inactive, | ||||
.vop_need_inactive = zfs_freebsd_need_inactive, | |||||
.vop_reclaim = zfs_freebsd_reclaim, | .vop_reclaim = zfs_freebsd_reclaim, | ||||
.vop_access = zfs_freebsd_access, | .vop_access = zfs_freebsd_access, | ||||
.vop_allocate = VOP_EINVAL, | .vop_allocate = VOP_EINVAL, | ||||
.vop_lookup = zfs_cache_lookup, | .vop_lookup = zfs_cache_lookup, | ||||
.vop_cachedlookup = zfs_freebsd_lookup, | .vop_cachedlookup = zfs_freebsd_lookup, | ||||
.vop_getattr = zfs_freebsd_getattr, | .vop_getattr = zfs_freebsd_getattr, | ||||
.vop_setattr = zfs_freebsd_setattr, | .vop_setattr = zfs_freebsd_setattr, | ||||
.vop_create = zfs_freebsd_create, | .vop_create = zfs_freebsd_create, | ||||
▲ Show 20 Lines • Show All 68 Lines • Show Last 20 Lines |