Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4daa1b87992ff210c19a6347cabde22335667004
Commit:     4daa1b87992ff210c19a6347cabde22335667004
Parent:     742ba02a51c8d0bf5446b154531179760c1ed0a2
Author:     Marcin Slusarz <[EMAIL PROTECTED]>
AuthorDate: Fri Feb 8 04:20:41 2008 -0800
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Fri Feb 8 09:22:35 2008 -0800

    udf: replace loops coded with goto to real loops
    
    Signed-off-by: Marcin Slusarz <[EMAIL PROTECTED]>
    Acked-by: Jan Kara <[EMAIL PROTECTED]>
    Cc: Christoph Hellwig <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 fs/udf/balloc.c |  122 +++++++++++++++++++++++++++---------------------------
 1 files changed, 61 insertions(+), 61 deletions(-)

diff --git a/fs/udf/balloc.c b/fs/udf/balloc.c
index c3db91b..9892596 100644
--- a/fs/udf/balloc.c
+++ b/fs/udf/balloc.c
@@ -183,46 +183,46 @@ static void udf_bitmap_free_blocks(struct super_block *sb,
        block = bloc.logicalBlockNum + offset +
                (sizeof(struct spaceBitmapDesc) << 3);
 
-do_more:
-       overflow = 0;
-       block_group = block >> (sb->s_blocksize_bits + 3);
-       bit = block % (sb->s_blocksize << 3);
+       do {
+               overflow = 0;
+               block_group = block >> (sb->s_blocksize_bits + 3);
+               bit = block % (sb->s_blocksize << 3);
 
-       /*
-        * Check to see if we are freeing blocks across a group boundary.
-        */
-       if (bit + count > (sb->s_blocksize << 3)) {
-               overflow = bit + count - (sb->s_blocksize << 3);
-               count -= overflow;
-       }
-       bitmap_nr = load_block_bitmap(sb, bitmap, block_group);
-       if (bitmap_nr < 0)
-               goto error_return;
+               /*
+               * Check to see if we are freeing blocks across a group boundary.
+               */
+               if (bit + count > (sb->s_blocksize << 3)) {
+                       overflow = bit + count - (sb->s_blocksize << 3);
+                       count -= overflow;
+               }
+               bitmap_nr = load_block_bitmap(sb, bitmap, block_group);
+               if (bitmap_nr < 0)
+                       goto error_return;
 
-       bh = bitmap->s_block_bitmap[bitmap_nr];
-       for (i = 0; i < count; i++) {
-               if (udf_set_bit(bit + i, bh->b_data)) {
-                       udf_debug("bit %ld already set\n", bit + i);
-                       udf_debug("byte=%2x\n",
-                                 ((char *)bh->b_data)[(bit + i) >> 3]);
-               } else {
-                       if (inode)
-                               DQUOT_FREE_BLOCK(inode, 1);
-                       udf_add_free_space(sbi, sbi->s_partition, 1);
+               bh = bitmap->s_block_bitmap[bitmap_nr];
+               for (i = 0; i < count; i++) {
+                       if (udf_set_bit(bit + i, bh->b_data)) {
+                               udf_debug("bit %ld already set\n", bit + i);
+                               udf_debug("byte=%2x\n",
+                                       ((char *)bh->b_data)[(bit + i) >> 3]);
+                       } else {
+                               if (inode)
+                                       DQUOT_FREE_BLOCK(inode, 1);
+                               udf_add_free_space(sbi, sbi->s_partition, 1);
+                       }
                }
-       }
-       mark_buffer_dirty(bh);
-       if (overflow) {
-               block += count;
-               count = overflow;
-               goto do_more;
-       }
+               mark_buffer_dirty(bh);
+               if (overflow) {
+                       block += count;
+                       count = overflow;
+               }
+       } while (overflow);
+
 error_return:
        sb->s_dirt = 1;
        if (sbi->s_lvid_bh)
                mark_buffer_dirty(sbi->s_lvid_bh);
        mutex_unlock(&sbi->s_alloc_mutex);
-       return;
 }
 
 static int udf_bitmap_prealloc_blocks(struct super_block *sb,
@@ -246,37 +246,37 @@ static int udf_bitmap_prealloc_blocks(struct super_block 
*sb,
        if (first_block + block_count > part_len)
                block_count = part_len - first_block;
 
-repeat:
-       nr_groups = udf_compute_nr_groups(sb, partition);
-       block = first_block + (sizeof(struct spaceBitmapDesc) << 3);
-       block_group = block >> (sb->s_blocksize_bits + 3);
-       group_start = block_group ? 0 : sizeof(struct spaceBitmapDesc);
+       do {
+               nr_groups = udf_compute_nr_groups(sb, partition);
+               block = first_block + (sizeof(struct spaceBitmapDesc) << 3);
+               block_group = block >> (sb->s_blocksize_bits + 3);
+               group_start = block_group ? 0 : sizeof(struct spaceBitmapDesc);
 
-       bitmap_nr = load_block_bitmap(sb, bitmap, block_group);
-       if (bitmap_nr < 0)
-               goto out;
-       bh = bitmap->s_block_bitmap[bitmap_nr];
+               bitmap_nr = load_block_bitmap(sb, bitmap, block_group);
+               if (bitmap_nr < 0)
+                       goto out;
+               bh = bitmap->s_block_bitmap[bitmap_nr];
 
-       bit = block % (sb->s_blocksize << 3);
+               bit = block % (sb->s_blocksize << 3);
 
-       while (bit < (sb->s_blocksize << 3) && block_count > 0) {
-               if (!udf_test_bit(bit, bh->b_data)) {
-                       goto out;
-               } else if (DQUOT_PREALLOC_BLOCK(inode, 1)) {
-                       goto out;
-               } else if (!udf_clear_bit(bit, bh->b_data)) {
-                       udf_debug("bit already cleared for block %d\n", bit);
-                       DQUOT_FREE_BLOCK(inode, 1);
-                       goto out;
+               while (bit < (sb->s_blocksize << 3) && block_count > 0) {
+                       if (!udf_test_bit(bit, bh->b_data))
+                               goto out;
+                       else if (DQUOT_PREALLOC_BLOCK(inode, 1))
+                               goto out;
+                       else if (!udf_clear_bit(bit, bh->b_data)) {
+                               udf_debug("bit already cleared for block %d\n", 
bit);
+                               DQUOT_FREE_BLOCK(inode, 1);
+                               goto out;
+                       }
+                       block_count--;
+                       alloc_count++;
+                       bit++;
+                       block++;
                }
-               block_count--;
-               alloc_count++;
-               bit++;
-               block++;
-       }
-       mark_buffer_dirty(bh);
-       if (block_count > 0)
-               goto repeat;
+               mark_buffer_dirty(bh);
+       } while (block_count > 0);
+
 out:
        if (udf_add_free_space(sbi, partition, -alloc_count))
                mark_buffer_dirty(sbi->s_lvid_bh);
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to