Lines Matching refs:pmp
290 if (pmp->pmp_vnopmask[PUFFS_VN_##op] == 0) \
297 if (pmp->pmp_vnopmask[PUFFS_VN_##op] == 0) \
309 struct puffs_mount *pmp;
319 pmp = MPTOPUFFSMP(vp->v_mount);
324 if (!ALLOPS(pmp)) {
354 if (!EXISTSOP(pmp, READ))
394 puffs_abortbutton(struct puffs_mount *pmp, int what,
402 callremove(pmp, dck, ck, cnp);
405 callrmdir(pmp, dck, ck, cnp);
409 callinactive(pmp, ck, 0);
410 callreclaim(pmp, ck, 1);
443 struct puffs_mount *pmp;
450 pmp = MPTOPUFFSMP(ap->a_dvp->v_mount);
471 if (PUFFS_USE_DOTDOTCACHE(pmp) && (cnp->cn_flags & ISDOTDOT)) {
482 if (!isdot && PUFFS_USE_NAMECACHE(pmp)) {
492 if (found && *ap->a_vpp != NULLVP && PUFFS_USE_FS_TTL(pmp)) {
512 if (found && *ap->a_vpp == NULLVP && PUFFS_USE_FS_TTL(pmp))
549 cnp, PUFFS_USE_FULLPNBUF(pmp));
556 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_lookup, dvp->v_data, NULL, error);
567 error = checkerr(pmp, error, __func__);
582 if (PUFFS_USE_NAMECACHE(pmp) &&
583 !PUFFS_USE_FS_TTL(pmp))
597 puffs_senderr(pmp, PUFFS_ERR_LOOKUP, EINVAL,
629 puffs_abortbutton(pmp, PUFFS_ABORT_LOOKUP,
641 if (PUFFS_USE_FS_TTL(pmp)) {
651 if (PUFFS_USE_NAMECACHE(pmp))
665 if (PUFFS_USE_DOTDOTCACHE(pmp) &&
723 struct puffs_mount *pmp = MPTOPUFFSMP(mp);
731 cnp, PUFFS_USE_FULLPNBUF(pmp));
735 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_create, dvp->v_data, NULL, error);
737 error = checkerr(pmp, error, __func__);
744 puffs_abortbutton(pmp, PUFFS_ABORT_CREATE, dpn->pn_cookie,
749 if (PUFFS_USE_FS_TTL(pmp)) {
760 if (PUFFS_USE_DOTDOTCACHE(pmp) &&
785 struct puffs_mount *pmp = MPTOPUFFSMP(mp);
790 cnp, PUFFS_USE_FULLPNBUF(pmp));
795 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_mknod, dvp->v_data, NULL, error);
797 error = checkerr(pmp, error, __func__);
805 puffs_abortbutton(pmp, PUFFS_ABORT_MKNOD, dpn->pn_cookie,
810 if (PUFFS_USE_FS_TTL(pmp)) {
821 if (PUFFS_USE_DOTDOTCACHE(pmp) &&
841 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
848 if (vp->v_type == VREG && mode & FWRITE && !EXISTSOP(pmp, WRITE))
851 if (!EXISTSOP(pmp, OPEN))
860 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_open, vp->v_data, NULL, error);
861 error = checkerr(pmp, error, __func__);
895 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
904 puffs_msg_enqueue(pmp, park_close);
920 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
930 || !EXISTSOP(pmp, WRITE))
938 if (!EXISTSOP(pmp, ACCESS))
947 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_access, vp->v_data, NULL, error);
948 error = checkerr(pmp, error, __func__);
959 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
984 if (PUFFS_USE_METAFLUSH(pmp)) {
996 use_metacache = PUFFS_USE_METAFLUSH(pmp) &&
1042 struct puffs_mount *pmp = MPTOPUFFSMP(mp);
1066 if (PUFFS_USE_FS_TTL(pmp)) {
1080 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_getattr, vp->v_data, NULL, error);
1081 error = checkerr(pmp, error, __func__);
1087 if (PUFFS_USE_FS_TTL(pmp))
1121 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
1143 if (PUFFS_USE_METAFLUSH(pmp) && pn->pn_stat & PNODE_METACACHE_MASK) {
1164 if (PUFFS_USE_FS_TTL(pmp))
1175 puffs_msg_enqueue(pmp, park_setattr);
1177 error = puffs_msg_wait2(pmp, park_setattr, vp->v_data, NULL);
1179 if ((error == 0) && PUFFS_USE_FS_TTL(pmp)) {
1189 error = checkerr(pmp, error, __func__);
1204 if ((flags & SETATTR_CHSIZE) && PUFFS_USE_PAGECACHE(pmp) &&
1237 doinact(struct puffs_mount *pmp, int iaflag)
1240 if (EXISTSOP(pmp, INACTIVE))
1241 if (pmp->pmp_flags & PUFFS_KFLAG_IAONDEMAND)
1242 if (iaflag || ALLOPS(pmp))
1253 callinactive(struct puffs_mount *pmp, puffs_cookie_t ck, int iaflag)
1257 if (doinact(pmp, iaflag)) {
1261 PUFFS_MSG_ENQUEUEWAIT_NOERROR(pmp, park_inactive);
1276 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
1294 if (doinact(pmp, pnode->pn_stat & PNODE_DOINACT)) {
1299 PUFFS_MSG_ENQUEUEWAIT2_NOERROR(pmp, park_inactive, vp->v_data,
1322 if (PUFFS_USE_FS_TTL(pmp) && !(vp->v_vflag & VV_ROOT) && !recycle) {
1342 mutex_enter(&pmp->pmp_sopmtx);
1353 if (pmp->pmp_sopthrcount == 0) {
1356 TAILQ_INSERT_TAIL(&pmp->pmp_sopnodereqs,
1361 mutex_exit(&pmp->pmp_sopmtx);
1378 callreclaim(struct puffs_mount *pmp, puffs_cookie_t ck, int nlookup)
1382 if (!EXISTSOP(pmp, RECLAIM))
1390 puffs_msg_enqueue(pmp, park_reclaim);
1407 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
1419 mutex_enter(&pmp->pmp_lock);
1420 KASSERT(pmp->pmp_root != NULL);
1421 pmp->pmp_root = NULL;
1422 mutex_exit(&pmp->pmp_lock);
1435 mutex_enter(&pmp->pmp_lock);
1436 if (PUFFS_USE_NAMECACHE(pmp))
1438 mutex_exit(&pmp->pmp_lock);
1446 if (PUFFS_USE_DOTDOTCACHE(pmp)) {
1473 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
1500 if (pmp->pmp_args.pa_fhsize == 0)
1502 resid = PUFFS_TOMOVE(uio->uio_resid, pmp) / 2;
1506 resid = PUFFS_TOMOVE(uio->uio_resid, pmp);
1526 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_readdir, vp->v_data, NULL, error);
1527 error = checkerr(pmp, error, __func__);
1533 puffs_senderr(pmp, PUFFS_ERR_READDIR, E2BIG,
1538 puffs_senderr(pmp, PUFFS_ERR_READDIR, E2BIG,
1599 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
1603 if (EXISTSOP(pmp, POLL)) {
1622 PUFFS_MSG_ENQUEUEWAIT2_NOERROR(pmp, park_poll,
1675 struct puffs_mount *pmp;
1682 pmp = MPTOPUFFSMP(vp->v_mount);
1707 if (!EXISTSOP(pmp, FSYNC) || (pn->pn_stat & PNODE_DYING))
1736 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_fsync, vp->v_data, NULL, error);
1739 error = checkerr(pmp, error, __func__);
1758 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
1768 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_seek, vp->v_data, NULL, error);
1770 return checkerr(pmp, error, __func__);
1774 callremove(struct puffs_mount *pmp, puffs_cookie_t dck, puffs_cookie_t ck,
1783 cnp, PUFFS_USE_FULLPNBUF(pmp));
1786 PUFFS_MSG_ENQUEUEWAIT(pmp, park_remove, error);
1789 return checkerr(pmp, error, __func__);
1813 struct puffs_mount *pmp = MPTOPUFFSMP(mp);
1819 cnp, PUFFS_USE_FULLPNBUF(pmp));
1823 puffs_msg_enqueue(pmp, park_remove);
1830 error = puffs_msg_wait2(pmp, park_remove, dpn, pn);
1839 error = checkerr(pmp, error, __func__);
1858 struct puffs_mount *pmp = MPTOPUFFSMP(mp);
1863 cnp, PUFFS_USE_FULLPNBUF(pmp));
1868 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_mkdir, dvp->v_data, NULL, error);
1870 error = checkerr(pmp, error, __func__);
1877 puffs_abortbutton(pmp, PUFFS_ABORT_MKDIR, dpn->pn_cookie,
1882 if (PUFFS_USE_FS_TTL(pmp)) {
1893 if (PUFFS_USE_DOTDOTCACHE(pmp) &&
1903 callrmdir(struct puffs_mount *pmp, puffs_cookie_t dck, puffs_cookie_t ck,
1912 cnp, PUFFS_USE_FULLPNBUF(pmp));
1915 PUFFS_MSG_ENQUEUEWAIT(pmp, park_rmdir, error);
1918 return checkerr(pmp, error, __func__);
1935 struct puffs_mount *pmp = MPTOPUFFSMP(dvp->v_mount);
1942 cnp, PUFFS_USE_FULLPNBUF(pmp));
1946 puffs_msg_enqueue(pmp, park_rmdir);
1951 error = puffs_msg_wait2(pmp, park_rmdir, dpn, pn);
1978 struct puffs_mount *pmp = MPTOPUFFSMP(dvp->v_mount);
1985 cnp, PUFFS_USE_FULLPNBUF(pmp));
1989 puffs_msg_enqueue(pmp, park_link);
1990 error = puffs_msg_wait2(pmp, park_link, dpn, pn);
1994 error = checkerr(pmp, error, __func__);
2024 struct puffs_mount *pmp = MPTOPUFFSMP(dvp->v_mount);
2032 cnp, PUFFS_USE_FULLPNBUF(pmp));
2039 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_symlink, dvp->v_data, NULL, error);
2041 error = checkerr(pmp, error, __func__);
2048 puffs_abortbutton(pmp, PUFFS_ABORT_SYMLINK, dpn->pn_cookie,
2053 if (PUFFS_USE_FS_TTL(pmp)) {
2064 if (PUFFS_USE_DOTDOTCACHE(pmp) &&
2085 struct puffs_mount *pmp = MPTOPUFFSMP(ap->a_vp->v_mount);
2096 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_readlink, vp->v_data, NULL, error);
2097 error = checkerr(pmp, error, __func__);
2103 puffs_senderr(pmp, PUFFS_ERR_READLINK, E2BIG,
2132 struct puffs_mount *pmp = MPTOPUFFSMP(fdvp->v_mount);
2149 ap->a_fcnp, PUFFS_USE_FULLPNBUF(pmp));
2151 ap->a_tcnp, PUFFS_USE_FULLPNBUF(pmp));
2155 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_rename, fdvp->v_data, NULL, error);
2158 error = checkerr(pmp, error, __func__);
2173 if (PUFFS_USE_DOTDOTCACHE(pmp) &&
2218 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
2241 PUFFS_USE_PAGECACHE(pmp) &&
2270 tomove = PUFFS_TOMOVE(uio->uio_resid, pmp);
2277 tomove = PUFFS_TOMOVE(uio->uio_resid, pmp);
2285 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_read, vp->v_data,
2287 error = checkerr(pmp, error, __func__);
2292 puffs_senderr(pmp, PUFFS_ERR_READ,
2335 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
2364 PUFFS_USE_PAGECACHE(pmp) &&
2424 } else if (error == 0 && pmp->pmp_flags & PUFFS_KFLAG_WTCACHE) {
2431 tomove = PUFFS_TOMOVE(uio->uio_resid, pmp);
2437 tomove = PUFFS_TOMOVE(uio->uio_resid, pmp);
2448 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_write, vp->v_data,
2450 error = checkerr(pmp, error, __func__);
2455 puffs_senderr(pmp, PUFFS_ERR_WRITE,
2481 (vp->v_type == VREG) && PUFFS_USE_PAGECACHE(pmp) &&
2503 if (!PUFFS_USE_METAFLUSH(pmp) && (uflags & PUFFS_UPDATESIZE)) {
2530 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
2542 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_fallocate, vp->v_data, NULL, error);
2543 error = checkerr(pmp, error, __func__);
2576 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
2586 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_fdiscard, vp->v_data, NULL, error);
2587 error = checkerr(pmp, error, __func__);
2601 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
2612 if (EXISTSOP(pmp, PRINT)) {
2616 PUFFS_MSG_ENQUEUEWAIT2_NOERROR(pmp, park_print, vp->v_data,
2635 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
2642 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_pathconf, vp->v_data, NULL, error);
2643 error = checkerr(pmp, error, __func__);
2665 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
2668 if (!EXISTSOP(pmp, ADVLOCK))
2679 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_advlock, vp->v_data, NULL, error);
2680 error = checkerr(pmp, error, __func__);
2695 struct puffs_mount *pmp = MPTOPUFFSMP(dvp->v_mount);
2698 if (EXISTSOP(pmp, ABORTOP)) {
2701 cnp, PUFFS_USE_FULLPNBUF(pmp));
2706 puffs_msg_enqueue(pmp, park_abortop);
2728 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
2735 pmp = MPTOPUFFSMP(vp->v_mount);
2744 if ((BUF_ISREAD(bp) && !EXISTSOP(pmp, READ))
2745 || (BUF_ISWRITE(bp) && !EXISTSOP(pmp, WRITE)))
2759 if (bp->b_bcount > pmp->pmp_msg_maxsize - PUFFS_MSGSTRUCT_MAX)
2784 tomove = PUFFS_TOMOVE(bp->b_bcount, pmp);
2800 puffs_msg_enqueue(pmp, park_rw);
2803 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_rw, vp->v_data,
2805 error = checkerr(pmp, error, __func__);
2810 puffs_senderr(pmp, PUFFS_ERR_READ,
2827 if (PUFFS_WCACHEINFO(pmp)) {
2855 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_rw, vp->v_data, NULL, error);
2860 error = checkerr(pmp, error, __func__);
2865 puffs_senderr(pmp, PUFFS_ERR_WRITE,
2909 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
2912 if (!PUFFS_USE_PAGECACHE(pmp))
2915 if (EXISTSOP(pmp, MMAP)) {
2922 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_mmap, vp->v_data, NULL, error);
2923 error = checkerr(pmp, error, __func__);
2953 struct puffs_mount *pmp;
2955 pmp = MPTOPUFFSMP(ap->a_vp->v_mount);
2963 = (PUFFS_TOMOVE(pmp->pmp_msg_maxsize, pmp)>>DEV_BSHIFT) - 1;
2990 struct puffs_mount *pmp;
3001 pmp = MPTOPUFFSMP(ap->a_vp->v_mount);
3036 if (write && PUFFS_WCACHEINFO(pmp)) {
3065 if (PUFFS_WCACHEINFO(pmp) == 0)
3108 puffs_cacheop(pmp, parkmem, pcinfo,
3143 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
3156 tomove = PUFFS_TOMOVE(resid, pmp);
3176 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_getextattr, vp->v_data, NULL, error);
3178 error = checkerr(pmp, error, __func__);
3184 puffs_senderr(pmp, PUFFS_ERR_GETEXTATTR, E2BIG,
3212 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
3224 tomove = PUFFS_TOMOVE(resid, pmp);
3247 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_setextattr, vp->v_data, NULL, error);
3249 error = checkerr(pmp, error, __func__);
3275 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
3288 tomove = PUFFS_TOMOVE(resid, pmp);
3307 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_listextattr, vp->v_data, NULL, error);
3309 error = checkerr(pmp, error, __func__);
3315 puffs_senderr(pmp, PUFFS_ERR_LISTEXTATTR, E2BIG,
3342 struct puffs_mount *pmp = MPTOPUFFSMP(vp->v_mount);
3355 PUFFS_MSG_ENQUEUEWAIT2(pmp, park_deleteextattr,
3358 error = checkerr(pmp, error, __func__);