version 1.18, 2008/08/29 15:04:18 |
version 1.18.4.3, 2009/06/06 22:04:40 |
Line 507 translate_again: |
|
Line 507 translate_again: |
|
lb_num = udf_rw32(s_icb_loc.loc.lb_num); |
lb_num = udf_rw32(s_icb_loc.loc.lb_num); |
vpart = udf_rw16(s_icb_loc.loc.part_num); |
vpart = udf_rw16(s_icb_loc.loc.part_num); |
lb_num += (ext_offset + lb_size -1) / lb_size; |
lb_num += (ext_offset + lb_size -1) / lb_size; |
len -= ext_offset; |
|
ext_offset = 0; |
ext_offset = 0; |
|
|
flags = UDF_EXT_FLAGS(s_icb_loc.len); |
|
|
|
UDF_UNLOCK_NODE(ump->metadata_node, 0); |
UDF_UNLOCK_NODE(ump->metadata_node, 0); |
if (flags != UDF_EXT_ALLOCATED) { |
if (flags != UDF_EXT_ALLOCATED) { |
DPRINTF(TRANSLATE, ("Metadata partition translation " |
DPRINTF(TRANSLATE, ("Metadata partition translation " |
Line 827 udf_bitmap_allocate(struct udf_bitmap *b |
|
Line 824 udf_bitmap_allocate(struct udf_bitmap *b |
|
offset += 8; |
offset += 8; |
continue; |
continue; |
} |
} |
|
|
|
/* check for ffs overshoot */ |
|
if (offset + bit-1 >= bitmap->max_offset) { |
|
offset = bitmap->max_offset; |
|
break; |
|
} |
|
|
DPRINTF(PARANOIA, ("XXX : allocate %d, %p, bit %d\n", |
DPRINTF(PARANOIA, ("XXX : allocate %d, %p, bit %d\n", |
offset + bit -1, bpos, bit-1)); |
offset + bit -1, bpos, bit-1)); |
*bpos &= ~(1 << (bit-1)); |
*bpos &= ~(1 << (bit-1)); |
Line 1321 udf_wipe_adslots(struct udf_node *udf_no |
|
Line 1325 udf_wipe_adslots(struct udf_node *udf_no |
|
if (fe) { |
if (fe) { |
fe->l_ad = udf_rw32(0); |
fe->l_ad = udf_rw32(0); |
fe->logblks_rec = udf_rw64(0); |
fe->logblks_rec = udf_rw64(0); |
fe->tag.desc_crc_len = udf_rw32(crclen); |
fe->tag.desc_crc_len = udf_rw16(crclen); |
} else { |
} else { |
efe->l_ad = udf_rw32(0); |
efe->l_ad = udf_rw32(0); |
efe->logblks_rec = udf_rw64(0); |
efe->logblks_rec = udf_rw64(0); |
efe->tag.desc_crc_len = udf_rw32(crclen); |
efe->tag.desc_crc_len = udf_rw16(crclen); |
} |
} |
|
|
/* wipe all allocation extent entries */ |
/* wipe all allocation extent entries */ |
Line 1338 udf_wipe_adslots(struct udf_node *udf_no |
|
Line 1342 udf_wipe_adslots(struct udf_node *udf_no |
|
ext->l_ad = udf_rw32(0); |
ext->l_ad = udf_rw32(0); |
|
|
crclen = dscr_size - UDF_DESC_TAG_LENGTH; |
crclen = dscr_size - UDF_DESC_TAG_LENGTH; |
ext->tag.desc_crc_len = udf_rw32(crclen); |
ext->tag.desc_crc_len = udf_rw16(crclen); |
} |
} |
udf_node->i_flags |= IN_NODE_REBUILD; |
udf_node->i_flags |= IN_NODE_REBUILD; |
} |
} |
Line 1564 udf_append_adslot(struct udf_node *udf_n |
|
Line 1568 udf_append_adslot(struct udf_node *udf_n |
|
|
|
/* offset is offset within the current (E)FE/AED */ |
/* offset is offset within the current (E)FE/AED */ |
l_ad = udf_rw32(*l_ad_p); |
l_ad = udf_rw32(*l_ad_p); |
crclen = udf_rw32(dscr->tag.desc_crc_len); |
crclen = udf_rw16(dscr->tag.desc_crc_len); |
logblks_rec = udf_rw64(*logblks_rec_p); |
logblks_rec = udf_rw64(*logblks_rec_p); |
|
|
/* overwriting old piece? */ |
/* overwriting old piece? */ |
Line 1626 udf_append_adslot(struct udf_node *udf_n |
|
Line 1630 udf_append_adslot(struct udf_node *udf_n |
|
memset(ext->data, 0, max_l_ad); |
memset(ext->data, 0, max_l_ad); |
ext->l_ad = udf_rw32(0); |
ext->l_ad = udf_rw32(0); |
ext->tag.desc_crc_len = |
ext->tag.desc_crc_len = |
udf_rw32(dscr_size - UDF_DESC_TAG_LENGTH); |
udf_rw16(dscr_size - UDF_DESC_TAG_LENGTH); |
|
|
/* declare aed */ |
/* declare aed */ |
udf_node->num_extensions++; |
udf_node->num_extensions++; |
Line 1644 udf_append_adslot(struct udf_node *udf_n |
|
Line 1648 udf_append_adslot(struct udf_node *udf_n |
|
} |
} |
l_ad += adlen; |
l_ad += adlen; |
crclen += adlen; |
crclen += adlen; |
dscr->tag.desc_crc_len = udf_rw32(crclen); |
dscr->tag.desc_crc_len = udf_rw16(crclen); |
*l_ad_p = udf_rw32(l_ad); |
*l_ad_p = udf_rw32(l_ad); |
|
|
/* advance to the new extension */ |
/* advance to the new extension */ |
Line 1656 udf_append_adslot(struct udf_node *udf_n |
|
Line 1660 udf_append_adslot(struct udf_node *udf_n |
|
|
|
l_ad_p = &ext->l_ad; |
l_ad_p = &ext->l_ad; |
l_ad = udf_rw32(*l_ad_p); |
l_ad = udf_rw32(*l_ad_p); |
crclen = udf_rw32(dscr->tag.desc_crc_len); |
crclen = udf_rw16(dscr->tag.desc_crc_len); |
offset = 0; |
offset = 0; |
|
|
/* adjust callees slot count for link insert */ |
/* adjust callees slot count for link insert */ |
Line 1678 udf_append_adslot(struct udf_node *udf_n |
|
Line 1682 udf_append_adslot(struct udf_node *udf_n |
|
} |
} |
|
|
/* adjust logblks recorded count */ |
/* adjust logblks recorded count */ |
flags = UDF_EXT_FLAGS(udf_rw32(icb->len)); |
len = udf_rw32(icb->len); |
|
flags = UDF_EXT_FLAGS(len); |
if (flags == UDF_EXT_ALLOCATED) |
if (flags == UDF_EXT_ALLOCATED) |
logblks_rec += (UDF_EXT_LEN(icb->len) + lb_size -1) / lb_size; |
logblks_rec += (UDF_EXT_LEN(len) + lb_size -1) / lb_size; |
*logblks_rec_p = udf_rw64(logblks_rec); |
*logblks_rec_p = udf_rw64(logblks_rec); |
|
|
/* adjust l_ad and crclen when needed */ |
/* adjust l_ad and crclen when needed */ |
if (offset >= l_ad) { |
if (offset >= l_ad) { |
l_ad += adlen; |
l_ad += adlen; |
crclen += adlen; |
crclen += adlen; |
dscr->tag.desc_crc_len = udf_rw32(crclen); |
dscr->tag.desc_crc_len = udf_rw16(crclen); |
*l_ad_p = udf_rw32(l_ad); |
*l_ad_p = udf_rw32(l_ad); |
} |
} |
|
|
Line 2197 udf_grow_node(struct udf_node *udf_node, |
|
Line 2202 udf_grow_node(struct udf_node *udf_node, |
|
if (fe) { |
if (fe) { |
fe->inf_len = udf_rw64(inflen); |
fe->inf_len = udf_rw64(inflen); |
fe->l_ad = udf_rw32(l_ad); |
fe->l_ad = udf_rw32(l_ad); |
fe->tag.desc_crc_len = udf_rw32(crclen); |
fe->tag.desc_crc_len = udf_rw16(crclen); |
} else { |
} else { |
efe->inf_len = udf_rw64(inflen); |
efe->inf_len = udf_rw64(inflen); |
efe->obj_size = udf_rw64(objsize); |
efe->obj_size = udf_rw64(objsize); |
efe->l_ad = udf_rw32(l_ad); |
efe->l_ad = udf_rw32(l_ad); |
efe->tag.desc_crc_len = udf_rw32(crclen); |
efe->tag.desc_crc_len = udf_rw16(crclen); |
} |
} |
error = 0; |
error = 0; |
|
|
Line 2470 udf_shrink_node(struct udf_node *udf_nod |
|
Line 2475 udf_shrink_node(struct udf_node *udf_nod |
|
if (fe) { |
if (fe) { |
fe->inf_len = udf_rw64(inflen); |
fe->inf_len = udf_rw64(inflen); |
fe->l_ad = udf_rw32(l_ad); |
fe->l_ad = udf_rw32(l_ad); |
fe->tag.desc_crc_len = udf_rw32(crclen); |
fe->tag.desc_crc_len = udf_rw16(crclen); |
} else { |
} else { |
efe->inf_len = udf_rw64(inflen); |
efe->inf_len = udf_rw64(inflen); |
efe->obj_size = udf_rw64(objsize); |
efe->obj_size = udf_rw64(objsize); |
efe->l_ad = udf_rw32(l_ad); |
efe->l_ad = udf_rw32(l_ad); |
efe->tag.desc_crc_len = udf_rw32(crclen); |
efe->tag.desc_crc_len = udf_rw16(crclen); |
} |
} |
error = 0; |
error = 0; |
|
|
Line 2631 udf_shrink_node(struct udf_node *udf_nod |
|
Line 2636 udf_shrink_node(struct udf_node *udf_nod |
|
if (fe) { |
if (fe) { |
fe->inf_len = udf_rw64(inflen); |
fe->inf_len = udf_rw64(inflen); |
fe->l_ad = udf_rw32(l_ad); |
fe->l_ad = udf_rw32(l_ad); |
fe->tag.desc_crc_len = udf_rw32(crclen); |
fe->tag.desc_crc_len = udf_rw16(crclen); |
} else { |
} else { |
efe->inf_len = udf_rw64(inflen); |
efe->inf_len = udf_rw64(inflen); |
efe->obj_size = udf_rw64(objsize); |
efe->obj_size = udf_rw64(objsize); |
efe->l_ad = udf_rw32(l_ad); |
efe->l_ad = udf_rw32(l_ad); |
efe->tag.desc_crc_len = udf_rw32(crclen); |
efe->tag.desc_crc_len = udf_rw16(crclen); |
} |
} |
/* eventually copy in evacuated piece */ |
/* eventually copy in evacuated piece */ |
/* set new size for uvm */ |
/* set new size for uvm */ |