- 论坛徽章:
- 0
|
没有找到vnode_if.c 但确实有vnode_if.o
反汇编得到
int
VOP_WRITE_AP(struct vop_write_args *a)
{
return(VOP_WRITE_APV(a->a_vp->v_op, a));
}
int
VOP_WRITE_APV(struct vop_vector *vop, struct vop_write_args *a)
{
int rc;
VNASSERT(a->a_gen.a_desc == &vop_write_desc, a->a_vp,
("Wrong a_desc in vop_write(%p, %p)", a->a_vp, a));
while(vop != NULL && \
vop->vop_write == NULL && vop->vop_bypass == NULL)
vop = vop->vop_default;
VNASSERT(vop != NULL, a->a_vp, ("No vop_write(%p, %p)", a->a_vp, a));
SDT_PROBE(vfs, vop, vop_write, entry, a->a_vp, a, 0, 0, 0);
ASSERT_VI_UNLOCKED(a->a_vp, "VOP_WRITE");
ASSERT_VOP_LOCKED(a->a_vp, "VOP_WRITE");
VOP_WRITE_PRE(a);
if (vop->vop_write != NULL)
rc = vop->vop_write(a);
else
rc = vop->vop_bypass(&a->a_gen);
CTR4(KTR_VOP,
"VOP_WRITE(vp 0x%lX, uio 0x%lX, ioflag %ld, cred 0x%lX)",
a->a_vp, a->a_uio, a->a_ioflag, a->a_cred);
SDT_PROBE(vfs, vop, vop_write, return, a->a_vp, a, rc, 0, 0);
if (rc == 0) {
ASSERT_VI_UNLOCKED(a->a_vp, "VOP_WRITE");
ASSERT_VOP_LOCKED(a->a_vp, "VOP_WRITE");
} else {
ASSERT_VI_UNLOCKED(a->a_vp, "VOP_WRITE");
ASSERT_VOP_LOCKED(a->a_vp, "VOP_WRITE");
}
VOP_WRITE_POST(a, rc);
return (rc);
} |
|