version 1.129.4.2, 2009/10/03 23:11:27 |
version 1.129.4.3, 2009/10/18 12:46:07 |
Line 81 int puffs_vnop_strategy(void *); |
|
Line 81 int puffs_vnop_strategy(void *); |
|
int puffs_vnop_bmap(void *); |
int puffs_vnop_bmap(void *); |
int puffs_vnop_mmap(void *); |
int puffs_vnop_mmap(void *); |
int puffs_vnop_getpages(void *); |
int puffs_vnop_getpages(void *); |
|
int puffs_vnop_abortop(void *); |
|
|
int puffs_vnop_spec_read(void *); |
int puffs_vnop_spec_read(void *); |
int puffs_vnop_spec_write(void *); |
int puffs_vnop_spec_write(void *); |
Line 129 const struct vnodeopv_entry_desc puffs_v |
|
Line 130 const struct vnodeopv_entry_desc puffs_v |
|
{ &vop_advlock_desc, puffs_vnop_checkop }, /* advlock */ |
{ &vop_advlock_desc, puffs_vnop_checkop }, /* advlock */ |
{ &vop_strategy_desc, puffs_vnop_strategy }, /* REAL strategy */ |
{ &vop_strategy_desc, puffs_vnop_strategy }, /* REAL strategy */ |
{ &vop_revoke_desc, genfs_revoke }, /* REAL revoke */ |
{ &vop_revoke_desc, genfs_revoke }, /* REAL revoke */ |
{ &vop_abortop_desc, genfs_abortop }, /* REAL abortop */ |
{ &vop_abortop_desc, puffs_vnop_abortop }, /* REAL abortop */ |
{ &vop_inactive_desc, puffs_vnop_inactive }, /* REAL inactive */ |
{ &vop_inactive_desc, puffs_vnop_inactive }, /* REAL inactive */ |
{ &vop_reclaim_desc, puffs_vnop_reclaim }, /* REAL reclaim */ |
{ &vop_reclaim_desc, puffs_vnop_reclaim }, /* REAL reclaim */ |
{ &vop_lock_desc, puffs_vnop_lock }, /* REAL lock */ |
{ &vop_lock_desc, puffs_vnop_lock }, /* REAL lock */ |
Line 2114 puffs_vnop_advlock(void *v) |
|
Line 2115 puffs_vnop_advlock(void *v) |
|
return error; |
return error; |
} |
} |
|
|
|
int |
|
puffs_vnop_abortop(void *v) |
|
{ |
|
struct vop_abortop_args /* { |
|
struct vnode *a_dvp; |
|
struct componentname *a_cnp; |
|
}; */ *ap = v; |
|
PUFFS_MSG_VARS(vn, abortop); |
|
struct vnode *dvp = ap->a_dvp; |
|
struct puffs_mount *pmp = MPTOPUFFSMP(dvp->v_mount); |
|
struct componentname *cnp = ap->a_cnp; |
|
int error; |
|
|
|
if (EXISTSOP(pmp, ABORTOP)) { |
|
PUFFS_MSG_ALLOC(vn, abortop); |
|
puffs_makecn(&abortop_msg->pvnr_cn, &abortop_msg->pvnr_cn_cred, |
|
cnp, PUFFS_USE_FULLPNBUF(pmp)); |
|
puffs_msg_setinfo(park_abortop, PUFFSOP_VN, |
|
PUFFS_VN_ABORTOP, VPTOPNC(dvp)); |
|
|
|
PUFFS_MSG_ENQUEUEWAIT(pmp, park_abortop, error); |
|
PUFFS_MSG_RELEASE(abortop); |
|
} |
|
|
|
return genfs_abortop(v); |
|
} |
|
|
#define BIOASYNC(bp) (bp->b_flags & B_ASYNC) |
#define BIOASYNC(bp) (bp->b_flags & B_ASYNC) |
|
|
/* |
/* |