]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/udf/partition.c
Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight
[linux-2.6-omap-h63xx.git] / fs / udf / partition.c
index 467a26171cd96e547d8f50c464727ff9e5afade5..aaab24c8c498d33ee3e9bb8774cf4fca47cee0bb 100644 (file)
@@ -14,7 +14,7 @@
  *
  * HISTORY
  *
- * 12/06/98 blf  Created file. 
+ * 12/06/98 blf  Created file.
  *
  */
 
 #include <linux/slab.h>
 #include <linux/buffer_head.h>
 
-inline uint32_t udf_get_pblock(struct super_block *sb, uint32_t block, uint16_t partition, uint32_t offset)
+inline uint32_t udf_get_pblock(struct super_block *sb, uint32_t block,
+                              uint16_t partition, uint32_t offset)
 {
-       if (partition >= UDF_SB_NUMPARTS(sb))
-       {
+       if (partition >= UDF_SB_NUMPARTS(sb)) {
                udf_debug("block=%d, partition=%d, offset=%d: invalid partition\n",
-                       block, partition, offset);
+                         block, partition, offset);
                return 0xFFFFFFFF;
        }
        if (UDF_SB_PARTFUNC(sb, partition))
@@ -42,7 +42,8 @@ inline uint32_t udf_get_pblock(struct super_block *sb, uint32_t block, uint16_t
                return UDF_SB_PARTROOT(sb, partition) + block + offset;
 }
 
-uint32_t udf_get_pblock_virt15(struct super_block *sb, uint32_t block, uint16_t partition, uint32_t offset)
+uint32_t udf_get_pblock_virt15(struct super_block *sb, uint32_t block,
+                              uint16_t partition, uint32_t offset)
 {
        struct buffer_head *bh = NULL;
        uint32_t newblock;
@@ -51,31 +52,26 @@ uint32_t udf_get_pblock_virt15(struct super_block *sb, uint32_t block, uint16_t
 
        index = (sb->s_blocksize - UDF_SB_TYPEVIRT(sb,partition).s_start_offset) / sizeof(uint32_t);
 
-       if (block > UDF_SB_TYPEVIRT(sb,partition).s_num_entries)
-       {
+       if (block > UDF_SB_TYPEVIRT(sb,partition).s_num_entries) {
                udf_debug("Trying to access block beyond end of VAT (%d max %d)\n",
-                       block, UDF_SB_TYPEVIRT(sb,partition).s_num_entries);
+                         block, UDF_SB_TYPEVIRT(sb,partition).s_num_entries);
                return 0xFFFFFFFF;
        }
 
-       if (block >= index)
-       {
+       if (block >= index) {
                block -= index;
                newblock = 1 + (block / (sb->s_blocksize / sizeof(uint32_t)));
                index = block % (sb->s_blocksize / sizeof(uint32_t));
-       }
-       else
-       {
+       } else {
                newblock = 0;
                index = UDF_SB_TYPEVIRT(sb,partition).s_start_offset / sizeof(uint32_t) + block;
        }
 
        loc = udf_block_map(UDF_SB_VAT(sb), newblock);
 
-       if (!(bh = sb_bread(sb, loc)))
-       {
+       if (!(bh = sb_bread(sb, loc))) {
                udf_debug("get_pblock(UDF_VIRTUAL_MAP:%p,%d,%d) VAT: %d[%d]\n",
-                       sb, block, partition, loc, index);
+                         sb, block, partition, loc, index);
                return 0xFFFFFFFF;
        }
 
@@ -83,50 +79,49 @@ uint32_t udf_get_pblock_virt15(struct super_block *sb, uint32_t block, uint16_t
 
        brelse(bh);
 
-       if (UDF_I_LOCATION(UDF_SB_VAT(sb)).partitionReferenceNum == partition)
-       {
+       if (UDF_I_LOCATION(UDF_SB_VAT(sb)).partitionReferenceNum == partition) {
                udf_debug("recursive call to udf_get_pblock!\n");
                return 0xFFFFFFFF;
        }
 
-       return udf_get_pblock(sb, loc, UDF_I_LOCATION(UDF_SB_VAT(sb)).partitionReferenceNum, offset);
+       return udf_get_pblock(sb, loc,
+                             UDF_I_LOCATION(UDF_SB_VAT(sb)).partitionReferenceNum,
+                             offset);
 }
 
-inline uint32_t udf_get_pblock_virt20(struct super_block *sb, uint32_t block, uint16_t partition, uint32_t offset)
+inline uint32_t udf_get_pblock_virt20(struct super_block * sb, uint32_t block,
+                                     uint16_t partition, uint32_t offset)
 {
        return udf_get_pblock_virt15(sb, block, partition, offset);
 }
 
-uint32_t udf_get_pblock_spar15(struct super_block *sb, uint32_t block, uint16_t partition, uint32_t offset)
+uint32_t udf_get_pblock_spar15(struct super_block * sb, uint32_t block,
+                              uint16_t partition, uint32_t offset)
 {
        int i;
        struct sparingTable *st = NULL;
        uint32_t packet = (block + offset) & ~(UDF_SB_TYPESPAR(sb,partition).s_packet_len - 1);
 
-       for (i=0; i<4; i++)
-       {
-               if (UDF_SB_TYPESPAR(sb,partition).s_spar_map[i] != NULL)
-               {
+       for (i = 0; i < 4; i++) {
+               if (UDF_SB_TYPESPAR(sb,partition).s_spar_map[i] != NULL) {
                        st = (struct sparingTable *)UDF_SB_TYPESPAR(sb,partition).s_spar_map[i]->b_data;
                        break;
                }
        }
 
-       if (st)
-       {
-               for (i=0; i<le16_to_cpu(st->reallocationTableLen); i++)
-               {
-                       if (le32_to_cpu(st->mapEntry[i].origLocation) >= 0xFFFFFFF0)
+       if (st) {
+               for (i = 0; i < le16_to_cpu(st->reallocationTableLen); i++) {
+                       if (le32_to_cpu(st->mapEntry[i].origLocation) >= 0xFFFFFFF0) {
                                break;
-                       else if (le32_to_cpu(st->mapEntry[i].origLocation) == packet)
-                       {
+                       } else if (le32_to_cpu(st->mapEntry[i].origLocation) == packet) {
                                return le32_to_cpu(st->mapEntry[i].mappedLocation) +
                                        ((block + offset) & (UDF_SB_TYPESPAR(sb,partition).s_packet_len - 1));
-                       }
-                       else if (le32_to_cpu(st->mapEntry[i].origLocation) > packet)
+                       } else if (le32_to_cpu(st->mapEntry[i].origLocation) > packet) {
                                break;
+                       }
                }
        }
+
        return UDF_SB_PARTROOT(sb,partition) + block + offset;
 }
 
@@ -138,18 +133,14 @@ int udf_relocate_blocks(struct super_block *sb, long old_block, long *new_block)
        uint32_t packet;
        int i, j, k, l;
 
-       for (i=0; i<UDF_SB_NUMPARTS(sb); i++)
-       {
+       for (i = 0; i < UDF_SB_NUMPARTS(sb); i++) {
                if (old_block > UDF_SB_PARTROOT(sb,i) &&
-                   old_block < UDF_SB_PARTROOT(sb,i) + UDF_SB_PARTLEN(sb,i))
-               {
+                   old_block < UDF_SB_PARTROOT(sb,i) + UDF_SB_PARTLEN(sb,i)) {
                        sdata = &UDF_SB_TYPESPAR(sb,i);
                        packet = (old_block - UDF_SB_PARTROOT(sb,i)) & ~(sdata->s_packet_len - 1);
 
-                       for (j=0; j<4; j++)
-                       {
-                               if (UDF_SB_TYPESPAR(sb,i).s_spar_map[j] != NULL)
-                               {
+                       for (j = 0; j < 4; j++) {
+                               if (UDF_SB_TYPESPAR(sb,i).s_spar_map[j] != NULL) {
                                        st = (struct sparingTable *)sdata->s_spar_map[j]->b_data;
                                        break;
                                }
@@ -158,14 +149,10 @@ int udf_relocate_blocks(struct super_block *sb, long old_block, long *new_block)
                        if (!st)
                                return 1;
 
-                       for (k=0; k<le16_to_cpu(st->reallocationTableLen); k++)
-                       {
-                               if (le32_to_cpu(st->mapEntry[k].origLocation) == 0xFFFFFFFF)
-                               {
-                                       for (; j<4; j++)
-                                       {
-                                               if (sdata->s_spar_map[j])
-                                               {
+                       for (k = 0; k < le16_to_cpu(st->reallocationTableLen); k++) {
+                               if (le32_to_cpu(st->mapEntry[k].origLocation) == 0xFFFFFFFF) {
+                                       for (; j < 4; j++) {
+                                               if (sdata->s_spar_map[j]) {
                                                        st = (struct sparingTable *)sdata->s_spar_map[j]->b_data;
                                                        st->mapEntry[k].origLocation = cpu_to_le32(packet);
                                                        udf_update_tag((char *)st, sizeof(struct sparingTable) + le16_to_cpu(st->reallocationTableLen) * sizeof(struct sparingEntry));
@@ -175,28 +162,23 @@ int udf_relocate_blocks(struct super_block *sb, long old_block, long *new_block)
                                        *new_block = le32_to_cpu(st->mapEntry[k].mappedLocation) +
                                                ((old_block - UDF_SB_PARTROOT(sb,i)) & (sdata->s_packet_len - 1));
                                        return 0;
-                               }
-                               else if (le32_to_cpu(st->mapEntry[k].origLocation) == packet)
-                               {
+                               } else if (le32_to_cpu(st->mapEntry[k].origLocation) == packet) {
                                        *new_block = le32_to_cpu(st->mapEntry[k].mappedLocation) +
                                                ((old_block - UDF_SB_PARTROOT(sb,i)) & (sdata->s_packet_len - 1));
                                        return 0;
-                               }
-                               else if (le32_to_cpu(st->mapEntry[k].origLocation) > packet)
+                               } else if (le32_to_cpu(st->mapEntry[k].origLocation) > packet) {
                                        break;
+                               }
                        }
-                       for (l=k; l<le16_to_cpu(st->reallocationTableLen); l++)
-                       {
-                               if (le32_to_cpu(st->mapEntry[l].origLocation) == 0xFFFFFFFF)
-                               {
-                                       for (; j<4; j++)
-                                       {
-                                               if (sdata->s_spar_map[j])
-                                               {
+
+                       for (l = k; l < le16_to_cpu(st->reallocationTableLen); l++) {
+                               if (le32_to_cpu(st->mapEntry[l].origLocation) == 0xFFFFFFFF) {
+                                       for (; j < 4; j++) {
+                                               if (sdata->s_spar_map[j]) {
                                                        st = (struct sparingTable *)sdata->s_spar_map[j]->b_data;
                                                        mapEntry = st->mapEntry[l];
                                                        mapEntry.origLocation = cpu_to_le32(packet);
-                                                       memmove(&st->mapEntry[k+1], &st->mapEntry[k], (l-k)*sizeof(struct sparingEntry));
+                                                       memmove(&st->mapEntry[k + 1], &st->mapEntry[k], (l - k) * sizeof(struct sparingEntry));
                                                        st->mapEntry[k] = mapEntry;
                                                        udf_update_tag((char *)st, sizeof(struct sparingTable) + le16_to_cpu(st->reallocationTableLen) * sizeof(struct sparingEntry));
                                                        mark_buffer_dirty(sdata->s_spar_map[j]);
@@ -207,11 +189,12 @@ int udf_relocate_blocks(struct super_block *sb, long old_block, long *new_block)
                                        return 0;
                                }
                        }
+
                        return 1;
-               }
+               } /* if old_block */
        }
-       if (i == UDF_SB_NUMPARTS(sb))
-       {
+
+       if (i == UDF_SB_NUMPARTS(sb)) {
                /* outside of partitions */
                /* for now, fail =) */
                return 1;