Lines Matching defs:udf_node
70 #define VTOI(vnode) ((struct udf_node *) vnode->v_data)
80 static void udf_wipe_adslots(struct udf_node *udf_node);
81 static void udf_count_alloc_exts(struct udf_node *udf_node);
89 udf_node_dump(struct udf_node *udf_node) {
104 lb_size = udf_rw32(udf_node->ump->logical_vol->lb_size);
106 fe = udf_node->fe;
107 efe = udf_node->efe;
119 printf("udf_node_dump %p :\n", udf_node);
131 udf_get_adslot(udf_node, slot, &s_ad, &eof);
233 udf_node_sanity_check(struct udf_node *udf_node,
249 // KASSERT(mutex_owned(&udf_node->ump->allocate_mutex));
252 udf_node_dump(udf_node);
254 lb_size = udf_rw32(udf_node->ump->logical_vol->lb_size);
256 fe = udf_node->fe;
257 efe = udf_node->efe;
303 udf_get_adslot(udf_node, slot, &s_ad, &eof);
324 udf_assert_allocated(udf_node->ump, part_num, lb_num,
337 // KASSERT(mutex_owned(&udf_node->ump->allocate_mutex));
341 udf_node_sanity_check(struct udf_node *udf_node,
347 fe = udf_node->fe;
348 efe = udf_node->efe;
645 udf_translate_file_extent(struct udf_node *udf_node,
663 if (!udf_node)
668 UDF_LOCK_NODE(udf_node, 0);
671 ump = udf_node->ump;
674 if (udf_node->fe) {
675 icbtag = &udf_node->fe->icbtag;
677 icbtag = &udf_node->efe->icbtag;
685 UDF_UNLOCK_NODE(udf_node, 0);
693 udf_get_adslot(udf_node, slot, &s_ad, &eof);
704 UDF_UNLOCK_NODE(udf_node, 0);
728 udf_get_adslot(udf_node, slot, &s_ad, &eof);
739 UDF_UNLOCK_NODE(udf_node, 0);
783 UDF_UNLOCK_NODE(udf_node, 0);
796 UDF_UNLOCK_NODE(udf_node, 0);
807 UDF_UNLOCK_NODE(udf_node, 0);
1031 udf_do_reserve_space(struct udf_mount *ump, struct udf_node *udf_node,
1035 if (udf_node)
1036 udf_node->uncommitted_lbs += num_lb;
1041 udf_do_unreserve_space(struct udf_mount *ump, struct udf_node *udf_node,
1051 if (udf_node) {
1052 udf_node->uncommitted_lbs -= num_lb;
1053 if (udf_node->uncommitted_lbs < 0) {
1056 udf_node->uncommitted_lbs));
1057 udf_node->uncommitted_lbs = 0;
1064 udf_reserve_space(struct udf_mount *ump, struct udf_node *udf_node,
1106 udf_do_reserve_space(ump, udf_node, vpart_num, num_lb);
1118 udf_cleanup_reservation(struct udf_node *udf_node)
1120 struct udf_mount *ump = udf_node->ump;
1126 DPRINTF(RESERVE, ("UDF: overlapped %d blocks in count\n", udf_node->uncommitted_lbs));
1128 vpart_num = udf_get_record_vpart(ump, udf_get_c_type(udf_node));
1129 udf_do_unreserve_space(ump, udf_node, vpart_num, udf_node->uncommitted_lbs);
1148 udf_allocate_space(struct udf_mount *ump, struct udf_node *udf_node,
1183 udf_do_reserve_space(ump, udf_node,
1277 udf_do_unreserve_space(ump, udf_node, vpart_num, num_lb);
1392 struct udf_node *meta_node, *metamirror_node;
1464 struct udf_node *bitmap_node;
1638 struct udf_node *udf_node = VTOI(buf->b_vp);
1670 error = udf_allocate_space(ump, udf_node, udf_c_type,
1689 udf_node->outstanding_bufs--;
1754 udf_wipe_adslots(struct udf_node *udf_node)
1763 lb_size = udf_rw32(udf_node->ump->logical_vol->lb_size);
1765 fe = udf_node->fe;
1766 efe = udf_node->efe;
1792 for (extnr = 0; extnr < udf_node->num_extensions; extnr++) {
1793 ext = udf_node->ext[extnr];
1803 udf_node->i_flags |= IN_NODE_REBUILD;
1809 udf_get_adslot(struct udf_node *udf_node, int slot, struct long_ad *icb,
1822 fe = udf_node->fe;
1823 efe = udf_node->efe;
1863 l_icb.loc.part_num = udf_node->loc.loc.part_num;
1878 if (extnr >= udf_node->num_extensions) {
1883 ext = udf_node->ext[extnr];
1902 icb->loc.part_num = udf_node->loc.loc.part_num;
1916 udf_append_adslot(struct udf_node *udf_node, int *slot, struct long_ad *icb) {
1917 struct udf_mount *ump = udf_node->ump;
1936 vpart_num = udf_rw16(udf_node->loc.loc.part_num);
1939 fe = udf_node->fe;
1940 efe = udf_node->efe;
1992 l_icb.loc.part_num = udf_node->loc.loc.part_num;
2007 KASSERT(extnr < udf_node->num_extensions);
2010 ext = udf_node->ext[extnr];
2059 ext = udf_node->ext[extnr];
2060 l_icb = udf_node->ext_loc[extnr];
2083 udf_create_logvol_dscr(ump, udf_node, &l_icb, &extdscr);
2095 udf_node->num_extensions++;
2096 udf_node->ext_loc[extnr] = l_icb;
2097 udf_node->ext[extnr] = ext;
2164 udf_count_alloc_exts(struct udf_node *udf_node)
2172 if (udf_node->num_extensions == 0)
2179 udf_get_adslot(udf_node, slot, &s_ad, &eof);
2197 for (;extnr < udf_node->num_extensions; extnr++) {
2200 s_ad = udf_node->ext_loc[extnr];
2201 udf_free_logvol_dscr(udf_node->ump, &s_ad,
2202 udf_node->ext[extnr]);
2203 udf_node->ext[extnr] = NULL;
2208 udf_free_allocated_space(udf_node->ump, lb_num, vpart_num, 1);
2210 memset(&udf_node->ext_loc[extnr], 0, sizeof(struct long_ad));
2214 udf_node->num_extensions = num_extents;
2233 struct udf_node *udf_node = VTOI(vp);
2260 lb_size = udf_rw32(udf_node->ump->logical_vol->lb_size);
2264 UDF_LOCK_NODE(udf_node, 0); /* XXX can deadlock ? */
2265 udf_node_sanity_check(udf_node, &orig_inflen, &orig_lbrec);
2267 fe = udf_node->fe;
2268 efe = udf_node->efe;
2291 UDF_UNLOCK_NODE(udf_node, 0);
2301 udf_get_adslot(udf_node, slot, &s_ad, &eof);
2306 UDF_UNLOCK_NODE(udf_node, 0);
2388 UDF_UNLOCK_NODE(udf_node, 0);
2410 udf_get_adslot(udf_node, slot, &s_ad, &eof);
2491 udf_get_adslot(udf_node, slot, &s_ad, &eof);
2518 udf_wipe_adslots(udf_node);
2552 error = udf_append_adslot(udf_node, &slot, &c_ad);
2571 error = udf_append_adslot(udf_node, &slot, &c_ad);
2579 udf_count_alloc_exts(udf_node);
2582 udf_node_sanity_check(udf_node, &new_inflen, &new_lbrec);
2583 UDF_UNLOCK_NODE(udf_node, 0);
2594 udf_grow_node(struct udf_node *udf_node, uint64_t new_size)
2596 struct vnode *vp = udf_node->vnode;
2597 struct udf_mount *ump = udf_node->ump;
2616 UDF_LOCK_NODE(udf_node, 0);
2617 udf_node_sanity_check(udf_node, &orig_inflen, &orig_lbrec);
2623 if ((udf_node == ump->metadata_node) || (udf_node == ump->metadatamirror_node))
2627 fe = udf_node->fe;
2628 efe = udf_node->efe;
2684 udf_node_sanity_check(udf_node, &new_inflen, &new_lbrec);
2687 UDF_UNLOCK_NODE(udf_node, 0);
2703 UDF_UNLOCK_NODE(udf_node, 0);
2706 error = vn_rdwr(UIO_READ, udf_node->vnode,
2712 UDF_LOCK_NODE(udf_node, 0);
2716 my_part = udf_rw16(udf_node->loc.loc.part_num);
2717 dst_part = udf_get_record_vpart(ump, udf_get_c_type(udf_node));
2727 udf_wipe_adslots(udf_node);
2741 udf_get_adslot(udf_node, slot, &c_ad, &eof);
2765 udf_get_adslot(udf_node, slot, &c_ad, &eof);
2801 error = udf_append_adslot(udf_node, &slot, &c_ad);
2813 error = udf_append_adslot(udf_node, &slot, &c_ad);
2821 error = udf_append_adslot(udf_node, &slot, &s_ad);
2842 error = vn_rdwr(UIO_WRITE, udf_node->vnode,
2853 udf_count_alloc_exts(udf_node);
2855 udf_node_sanity_check(udf_node, &new_inflen, &new_lbrec);
2856 UDF_UNLOCK_NODE(udf_node, 0);
2867 udf_shrink_node(struct udf_node *udf_node, uint64_t new_size)
2869 struct vnode *vp = udf_node->vnode;
2870 struct udf_mount *ump = udf_node->ump;
2891 UDF_LOCK_NODE(udf_node, 0);
2892 udf_node_sanity_check(udf_node, &orig_inflen, &orig_lbrec);
2898 if ((udf_node == ump->metadata_node) || (udf_node == ump->metadatamirror_node))
2903 fe = udf_node->fe;
2904 efe = udf_node->efe;
2963 udf_node_sanity_check(udf_node, &new_inflen, &new_lbrec);
2964 UDF_UNLOCK_NODE(udf_node, 0);
2990 udf_get_adslot(udf_node, slot, &s_ad, &eof);
3056 udf_get_adslot(udf_node, slot, &s_ad, &eof);
3096 udf_wipe_adslots(udf_node);
3121 udf_node_sanity_check(udf_node, &new_inflen, &new_lbrec);
3123 UDF_UNLOCK_NODE(udf_node, 0);
3136 udf_wipe_adslots(udf_node);
3163 error = udf_append_adslot(udf_node, &slot, &c_ad);
3180 error = udf_append_adslot(udf_node, &slot, &c_ad);
3202 udf_count_alloc_exts(udf_node);
3204 udf_node_sanity_check(udf_node, &new_inflen, &new_lbrec);
3205 UDF_UNLOCK_NODE(udf_node, 0);