Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/vnode_if.src
Show First 20 Lines • Show All 697 Lines • ▼ Show 20 Lines | |||||
%% allocate vp E E E | %% allocate vp E E E | ||||
vop_allocate { | vop_allocate { | ||||
IN struct vnode *vp; | IN struct vnode *vp; | ||||
INOUT off_t *offset; | INOUT off_t *offset; | ||||
INOUT off_t *len; | INOUT off_t *len; | ||||
IN int flags; | |||||
IN struct ucred *cred; | |||||
}; | }; | ||||
%% advise vp U U U | %% advise vp U U U | ||||
vop_advise { | vop_advise { | ||||
IN struct vnode *vp; | IN struct vnode *vp; | ||||
IN off_t start; | IN off_t start; | ||||
▲ Show 20 Lines • Show All 79 Lines • ▼ Show 20 Lines | |||||
%% vput_pair dvp E - - | %% vput_pair dvp E - - | ||||
vop_vput_pair { | vop_vput_pair { | ||||
IN struct vnode *dvp; | IN struct vnode *dvp; | ||||
INOUT struct vnode **vpp; | INOUT struct vnode **vpp; | ||||
IN bool unlock_vp; | IN bool unlock_vp; | ||||
%% deallocate vp L L L | |||||
vop_deallocate { | |||||
IN struct vnode *vp; | |||||
INOUT off_t *offset; | |||||
INOUT off_t *len; | |||||
IN int flags; | |||||
IN struct ucred *cred; | |||||
}; | }; | ||||
# The VOPs below are spares at the end of the table to allow new VOPs to be | # The VOPs below are spares at the end of the table to allow new VOPs to be | ||||
kib: Where do you plan to use shared vnode lock? Isn't exclusive lock de-facto required? | |||||
Done Inline ActionsThis is for MNT_SHARED_WRITES(mp) == true, which is the case in ZFS. khng: This is for `MNT_SHARED_WRITES(mp) == true`, which is the case in ZFS. | |||||
# added in stable branches without breaking the KBI. New VOPs in HEAD should | # added in stable branches without breaking the KBI. New VOPs in HEAD should | ||||
# be added above these spares. When merging a new VOP to a stable branch, | # be added above these spares. When merging a new VOP to a stable branch, | ||||
# the new VOP should replace one of the spares. | # the new VOP should replace one of the spares. | ||||
vop_spare1 { | vop_spare1 { | ||||
IN struct vnode *vp; | IN struct vnode *vp; | ||||
}; | }; | ||||
Show All 15 Lines |
Where do you plan to use shared vnode lock? Isn't exclusive lock de-facto required?