vnd 78 arch/i386/i386/conf.c bdev_disk_init(NVND,vnd), /* 14: vnode disk driver */ vnd 251 arch/i386/i386/conf.c cdev_disk_init(NVND,vnd), /* 41: vnode disk driver */ vnd 170 dev/vnd.c vndencrypt(struct vnd_softc *vnd, caddr_t addr, size_t size, daddr64_t off, vnd 180 dev/vnd.c blf_ecb_encrypt(vnd->sc_keyctx, iv, sizeof(iv)); vnd 182 dev/vnd.c blf_cbc_encrypt(vnd->sc_keyctx, iv, addr, bsize); vnd 184 dev/vnd.c blf_cbc_decrypt(vnd->sc_keyctx, iv, addr, bsize); vnd 382 dev/vnd.c struct vnd_softc *vnd = &vnd_softc[unit]; vnd 395 dev/vnd.c if ((vnd->sc_flags & VNF_INITED) == 0) { vnd 417 dev/vnd.c if (vnd->sc_flags & VNF_HAVELABEL) { vnd 418 dev/vnd.c if (bounds_check_with_label(bp, vnd->sc_dk.dk_label, 1) <= 0) { vnd 438 dev/vnd.c daddr64_t off = DL_GETPOFFSET(&vnd->sc_dk.dk_label->d_partitions[part]); vnd 448 dev/vnd.c vn_lock(vnd->sc_vp, LK_EXCLUSIVE | LK_RETRY, p); vnd 451 dev/vnd.c bp->b_error = VOP_READ(vnd->sc_vp, &auio, 0, vnd 452 dev/vnd.c vnd->sc_cred); vnd 453 dev/vnd.c if (vnd->sc_keyctx) vnd 454 dev/vnd.c vndencrypt(vnd, bp->b_data, vnd 457 dev/vnd.c if (vnd->sc_keyctx) vnd 458 dev/vnd.c vndencrypt(vnd, bp->b_data, vnd 465 dev/vnd.c bp->b_error = VOP_WRITE(vnd->sc_vp, &auio, vnd 466 dev/vnd.c IO_NOLIMIT, vnd->sc_cred); vnd 468 dev/vnd.c if (vnd->sc_keyctx) vnd 469 dev/vnd.c vndencrypt(vnd, bp->b_data, vnd 472 dev/vnd.c VOP_UNLOCK(vnd->sc_vp, 0, p); vnd 481 dev/vnd.c if (!vnd->sc_tab.b_active) vnd 489 dev/vnd.c bp = vnd->sc_tab.b_actf; vnd 490 dev/vnd.c vnd->sc_tab.b_actf = bp->b_actf; vnd 491 dev/vnd.c vnd->sc_tab.b_active--; vnd 497 dev/vnd.c bn += DL_GETPOFFSET(&vnd->sc_dk.dk_label->d_partitions[DISKPART(bp->b_dev)]); vnd 499 dev/vnd.c bsize = vnd->sc_vp->v_mount->mnt_stat.f_iosize; vnd 508 dev/vnd.c vn_lock(vnd->sc_vp, LK_RETRY | LK_EXCLUSIVE, p); vnd 509 dev/vnd.c error = VOP_BMAP(vnd->sc_vp, bn / bsize, &vp, &nbn, &nra); vnd 510 dev/vnd.c VOP_UNLOCK(vnd->sc_vp, 0, p); vnd 526 dev/vnd.c vnd->sc_vp, vp, bn, nbn, sz); vnd 581 dev/vnd.c disksort(&vnd->sc_tab, &nbp->vb_buf); vnd 582 dev/vnd.c vnd->sc_tab.b_active++; vnd 583 dev/vnd.c vndstart(vnd); vnd 597 dev/vnd.c vndstart(struct vnd_softc *vnd) vnd 605 dev/vnd.c bp = vnd->sc_tab.b_actf; vnd 606 dev/vnd.c vnd->sc_tab.b_actf = bp->b_actf; vnd 610 dev/vnd.c vnd-vnd_softc, bp, bp->b_vp, bp->b_blkno, bp->b_data, vnd 614 dev/vnd.c disk_busy(&vnd->sc_dk); vnd 626 dev/vnd.c struct vnd_softc *vnd = &vnd_softc[vndunit(pbp->b_dev)]; vnd 632 dev/vnd.c vnd-vnd_softc, vbp, vbp->vb_buf.b_vp, vbp->vb_buf.b_blkno, vnd 644 dev/vnd.c if (vnd->sc_tab.b_active) { vnd 645 dev/vnd.c disk_unbusy(&vnd->sc_dk, (pbp->b_bcount - pbp->b_resid), vnd 647 dev/vnd.c if (!vnd->sc_tab.b_actf) vnd 648 dev/vnd.c vnd->sc_tab.b_active--; vnd 700 dev/vnd.c struct vnd_softc *vnd; vnd 716 dev/vnd.c vnd = &vnd_softc[unit]; vnd 721 dev/vnd.c if (vnd->sc_flags & VNF_INITED) vnd 723 dev/vnd.c if (!(vnd->sc_flags & VNF_SIMPLE) && vio->vnd_keylen) vnd 726 dev/vnd.c if ((error = vndlock(vnd)) != 0) vnd 729 dev/vnd.c if ((error = copyinstr(vio->vnd_file, vnd->sc_file, vnd 730 dev/vnd.c sizeof(vnd->sc_file), NULL))) { vnd 731 dev/vnd.c vndunlock(vnd); vnd 735 dev/vnd.c bzero(vnd->sc_dev.dv_xname, sizeof(vnd->sc_dev.dv_xname)); vnd 736 dev/vnd.c if (snprintf(vnd->sc_dev.dv_xname, sizeof(vnd->sc_dev.dv_xname), vnd 737 dev/vnd.c "vnd%d", unit) >= sizeof(vnd->sc_dev.dv_xname)) { vnd 739 dev/vnd.c vndunlock(vnd); vnd 749 dev/vnd.c vnd->sc_flags &= ~VNF_READONLY; vnd 752 dev/vnd.c vnd->sc_flags |= VNF_READONLY; vnd 756 dev/vnd.c vndunlock(vnd); vnd 763 dev/vnd.c (void) vn_close(nd.ni_vp, VNDRW(vnd), p->p_ucred, p); vnd 764 dev/vnd.c vndunlock(vnd); vnd 768 dev/vnd.c vnd->sc_vp = nd.ni_vp; vnd 769 dev/vnd.c vnd->sc_size = btodb(vattr.va_size); /* note truncation */ vnd 770 dev/vnd.c if ((error = vndsetcred(vnd, p->p_ucred)) != 0) { vnd 771 dev/vnd.c (void) vn_close(nd.ni_vp, VNDRW(vnd), p->p_ucred, p); vnd 772 dev/vnd.c vndunlock(vnd); vnd 784 dev/vnd.c (void) vn_close(nd.ni_vp, VNDRW(vnd), vnd 786 dev/vnd.c vndunlock(vnd); vnd 790 dev/vnd.c vnd->sc_keyctx = malloc(sizeof(*vnd->sc_keyctx), M_DEVBUF, vnd 792 dev/vnd.c blf_key(vnd->sc_keyctx, key, vio->vnd_keylen); vnd 795 dev/vnd.c vnd->sc_keyctx = NULL; vnd 797 dev/vnd.c vio->vnd_size = dbtob((off_t)vnd->sc_size); vnd 798 dev/vnd.c vnd->sc_flags |= VNF_INITED; vnd 801 dev/vnd.c vnd->sc_vp, (unsigned long long)vnd->sc_size); vnd 804 dev/vnd.c vnd->sc_dk.dk_driver = &vnddkdriver; vnd 805 dev/vnd.c vnd->sc_dk.dk_name = vnd->sc_dev.dv_xname; vnd 806 dev/vnd.c disk_attach(&vnd->sc_dk); vnd 808 dev/vnd.c vndunlock(vnd); vnd 813 dev/vnd.c if ((vnd->sc_flags & VNF_INITED) == 0) vnd 816 dev/vnd.c if ((error = vndlock(vnd)) != 0) vnd 826 dev/vnd.c if ((vnd->sc_dk.dk_openmask & ~pmask) || vnd 827 dev/vnd.c ((vnd->sc_dk.dk_bopenmask & pmask) && vnd 828 dev/vnd.c (vnd->sc_dk.dk_copenmask & pmask))) { vnd 829 dev/vnd.c vndunlock(vnd); vnd 833 dev/vnd.c vndclear(vnd); vnd 837 dev/vnd.c if (vnd->sc_keyctx) { vnd 838 dev/vnd.c bzero(vnd->sc_keyctx, sizeof(*vnd->sc_keyctx)); vnd 839 dev/vnd.c free(vnd->sc_keyctx, M_DEVBUF); vnd 843 dev/vnd.c disk_detach(&vnd->sc_dk); vnd 847 dev/vnd.c vndunlock(vnd); vnd 848 dev/vnd.c bzero(vnd, sizeof(struct vnd_softc)); vnd 862 dev/vnd.c vnd = &vnd_softc[vnu->vnu_unit]; vnd 864 dev/vnd.c if (vnd->sc_flags & VNF_INITED) { vnd 865 dev/vnd.c error = VOP_GETATTR(vnd->sc_vp, &vattr, p->p_ucred, p); vnd 869 dev/vnd.c strlcpy(vnu->vnu_file, vnd->sc_file, vnd 881 dev/vnd.c if ((vnd->sc_flags & VNF_HAVELABEL) == 0) vnd 883 dev/vnd.c *(struct disklabel *)addr = *(vnd->sc_dk.dk_label); vnd 887 dev/vnd.c if ((vnd->sc_flags & VNF_HAVELABEL) == 0) vnd 889 dev/vnd.c ((struct partinfo *)addr)->disklab = vnd->sc_dk.dk_label; vnd 891 dev/vnd.c &vnd->sc_dk.dk_label->d_partitions[DISKPART(dev)]; vnd 896 dev/vnd.c if ((vnd->sc_flags & VNF_HAVELABEL) == 0) vnd 901 dev/vnd.c if ((error = vndlock(vnd)) != 0) vnd 903 dev/vnd.c vnd->sc_flags |= VNF_LABELLING; vnd 905 dev/vnd.c error = setdisklabel(vnd->sc_dk.dk_label, vnd 910 dev/vnd.c vndstrategy, vnd->sc_dk.dk_label); vnd 913 dev/vnd.c vnd->sc_flags &= ~VNF_LABELLING; vnd 914 dev/vnd.c vndunlock(vnd); vnd 921 dev/vnd.c vnd->sc_flags |= VNF_WLABEL; vnd 923 dev/vnd.c vnd->sc_flags &= ~VNF_WLABEL; vnd 940 dev/vnd.c vndsetcred(struct vnd_softc *vnd, struct ucred *cred) vnd 948 dev/vnd.c vnd->sc_cred = crdup(cred); vnd 953 dev/vnd.c aiov.iov_len = MIN(DEV_BSIZE, dbtob((off_t)vnd->sc_size)); vnd 960 dev/vnd.c vn_lock(vnd->sc_vp, LK_RETRY | LK_EXCLUSIVE, p); vnd 961 dev/vnd.c error = VOP_READ(vnd->sc_vp, &auio, 0, vnd->sc_cred); vnd 962 dev/vnd.c VOP_UNLOCK(vnd->sc_vp, 0, p); vnd 971 dev/vnd.c struct vnd_softc *vnd; vnd 973 dev/vnd.c for (vnd = &vnd_softc[0]; vnd < &vnd_softc[numvnd]; vnd++) vnd 974 dev/vnd.c if (vnd->sc_flags & VNF_INITED) vnd 975 dev/vnd.c vndclear(vnd); vnd 979 dev/vnd.c vndclear(struct vnd_softc *vnd) vnd 981 dev/vnd.c struct vnode *vp = vnd->sc_vp; vnd 984 dev/vnd.c DNPRINTF(VDB_FOLLOW, "vndclear(%p): vp %p\n", vnd, vp); vnd 986 dev/vnd.c vnd->sc_flags &= ~VNF_INITED; vnd 989 dev/vnd.c (void) vn_close(vp, VNDRW(vnd), vnd->sc_cred, p); vnd 990 dev/vnd.c crfree(vnd->sc_cred); vnd 991 dev/vnd.c vnd->sc_vp = NULL; vnd 992 dev/vnd.c vnd->sc_cred = NULL; vnd 993 dev/vnd.c vnd->sc_size = 0; vnd 1000 dev/vnd.c struct vnd_softc *vnd = &vnd_softc[unit]; vnd 1002 dev/vnd.c if (unit >= numvnd || (vnd->sc_flags & VNF_INITED) == 0) vnd 1004 dev/vnd.c return (vnd->sc_size); vnd 574 sys/conf.h bdev_decl(vnd); vnd 575 sys/conf.h cdev_decl(vnd);