Add VOP_VPUT_PAIR() with trivial default implementation.
(cherry picked from commit 49c117c193
)
This commit is contained in:
parent
75f0d88bd3
commit
1f96e4cd1e
@ -92,6 +92,7 @@ static int vop_stdfdatasync(struct vop_fdatasync_args *ap);
|
||||
static int vop_stdgetpages_async(struct vop_getpages_async_args *ap);
|
||||
static int vop_stdread_pgcache(struct vop_read_pgcache_args *ap);
|
||||
static int vop_stdstat(struct vop_stat_args *ap);
|
||||
static int vop_stdvput_pair(struct vop_vput_pair_args *ap);
|
||||
|
||||
/*
|
||||
* This vnode table stores what we want to do if the filesystem doesn't
|
||||
@ -151,6 +152,7 @@ struct vop_vector default_vnodeops = {
|
||||
.vop_unset_text = vop_stdunset_text,
|
||||
.vop_add_writecount = vop_stdadd_writecount,
|
||||
.vop_copy_file_range = vop_stdcopy_file_range,
|
||||
.vop_vput_pair = vop_stdvput_pair,
|
||||
};
|
||||
VFS_VOP_VECTOR_REGISTER(default_vnodeops);
|
||||
|
||||
@ -1592,3 +1594,16 @@ vop_stdread_pgcache(struct vop_read_pgcache_args *ap __unused)
|
||||
{
|
||||
return (EJUSTRETURN);
|
||||
}
|
||||
|
||||
static int
|
||||
vop_stdvput_pair(struct vop_vput_pair_args *ap)
|
||||
{
|
||||
struct vnode *dvp, *vp, **vpp;
|
||||
|
||||
dvp = ap->a_dvp;
|
||||
vpp = ap->a_vpp;
|
||||
vput(dvp);
|
||||
if (vpp != NULL && ap->a_unlock_vp && (vp = *vpp) != NULL)
|
||||
vput(vp);
|
||||
return (0);
|
||||
}
|
||||
|
@ -792,6 +792,15 @@ vop_copy_file_range {
|
||||
};
|
||||
|
||||
|
||||
%% vput_pair dvp E - -
|
||||
|
||||
vop_vput_pair {
|
||||
IN struct vnode *dvp;
|
||||
INOUT struct vnode **vpp;
|
||||
IN bool unlock_vp;
|
||||
};
|
||||
|
||||
|
||||
# The VOPs below are spares at the end of the table to allow new VOPs to be
|
||||
# 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,
|
||||
|
Loading…
Reference in New Issue
Block a user