[BACK]Return to udf_allocation.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / fs / udf

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/fs/udf/udf_allocation.c between version 1.18 and 1.18.4.3

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 */

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.18.4.3

CVSweb <webmaster@jp.NetBSD.org>