static int udf_root(struct mount *mp, int flags, struct vnode **vpp) { struct udf_mnt *udfmp; ino_t id; udfmp = VFSTOUDFFS(mp); id = udf_getid(&udfmp->root_icb); return (udf_vget(mp, id, flags, vpp)); }
int udf_root(struct mount *mp, struct vnode **vpp) { struct umount *ump; struct vnode *vp; ino_t id; int error; ump = VFSTOUDFFS(mp); id = udf_getid(&ump->um_root_icb); error = udf_vget(mp, id, vpp); if (error) return (error); vp = *vpp; vp->v_flag |= VROOT; return (0); }
/* Get a vnode for the Virtual Allocation Table (VAT) */ int udf_vat_get(struct umount *ump, uint32_t lb) { struct vnode *vp; struct unode *up; int error; error = udf_vget(ump->um_mountp, lb - ump->um_start - 3, &vp); if (error) return (error); up = VTOU(vp); up->u_vatlen = (letoh64(up->u_fentry->inf_len) - 36) >> 2; ump->um_vat = malloc(sizeof(struct unode), M_UDFMOUNT, M_WAITOK); *ump->um_vat = *up; ump->um_flags &= ~UDF_MNT_FIND_VAT; ump->um_flags |= UDF_MNT_USES_VAT; vput(vp); return (0); }