mfsp
mfsp = malloc(sizeof *mfsp, M_MFSNODE, M_WAITOK | M_ZERO);
devvp->v_data = mfsp;
mfsp->mfs_baseoff = args->base;
mfsp->mfs_size = args->size;
mfsp->mfs_vnode = devvp;
mfsp->mfs_tid = p->p_tid;
bufq_init(&mfsp->mfs_bufq, BUFQ_FIFO);
mfsp->mfs_shutdown = 1;
struct mfsnode *mfsp = VTOMFS(vp);
if (mfsp->mfs_shutdown == 1)
bp = bufq_dequeue(&mfsp->mfs_bufq);
mfs_doio(mfsp, bp);
if (mfsp->mfs_shutdown == 1)
struct mfsnode *mfsp;
struct mfsnode *mfsp;
mfsp = VTOMFS(vp);
if (mfsp->mfs_tid == curproc->p_tid) {
mfs_doio(mfsp, bp);
bufq_queue(&mfsp->mfs_bufq, bp);
mfs_doio(struct mfsnode *mfsp, struct buf *bp)
if (bp->b_bcount > mfsp->mfs_size - offset)
bp->b_bcount = mfsp->mfs_size - offset;
base = mfsp->mfs_baseoff + offset;
struct mfsnode *mfsp = VTOMFS(vp);
bp = bufq_dequeue(&mfsp->mfs_bufq);
mfs_doio(mfsp, bp);
if (bufq_peek(&mfsp->mfs_bufq))
mfsp->mfs_shutdown = 1;
struct mfsnode *mfsp = VTOMFS(ap->a_vp);
if (mfsp->mfs_shutdown && bufq_peek(&mfsp->mfs_bufq))
struct mfsnode *mfsp = VTOMFS(vp);
bufq_destroy(&mfsp->mfs_bufq);
struct mfsnode *mfsp = VTOMFS(ap->a_vp);
printf("tag VT_MFS, tid %d, base %p, size %ld\n", mfsp->mfs_tid,
mfsp->mfs_baseoff, mfsp->mfs_size);
#define MFSTOV(mfsp) ((mfsp)->mfs_vnode)