Commit 4daa1b87 authored by Marcin Slusarz's avatar Marcin Slusarz Committed by Linus Torvalds

udf: replace loops coded with goto to real loops

Signed-off-by: default avatarMarcin Slusarz <marcin.slusarz@gmail.com>
Acked-by: default avatarJan Kara <jack@suse.cz>
Cc: Christoph Hellwig <hch@infradead.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 742ba02a
...@@ -183,7 +183,7 @@ static void udf_bitmap_free_blocks(struct super_block *sb, ...@@ -183,7 +183,7 @@ static void udf_bitmap_free_blocks(struct super_block *sb,
block = bloc.logicalBlockNum + offset + block = bloc.logicalBlockNum + offset +
(sizeof(struct spaceBitmapDesc) << 3); (sizeof(struct spaceBitmapDesc) << 3);
do_more: do {
overflow = 0; overflow = 0;
block_group = block >> (sb->s_blocksize_bits + 3); block_group = block >> (sb->s_blocksize_bits + 3);
bit = block % (sb->s_blocksize << 3); bit = block % (sb->s_blocksize << 3);
...@@ -215,14 +215,14 @@ static void udf_bitmap_free_blocks(struct super_block *sb, ...@@ -215,14 +215,14 @@ static void udf_bitmap_free_blocks(struct super_block *sb,
if (overflow) { if (overflow) {
block += count; block += count;
count = overflow; count = overflow;
goto do_more;
} }
} while (overflow);
error_return: error_return:
sb->s_dirt = 1; sb->s_dirt = 1;
if (sbi->s_lvid_bh) if (sbi->s_lvid_bh)
mark_buffer_dirty(sbi->s_lvid_bh); mark_buffer_dirty(sbi->s_lvid_bh);
mutex_unlock(&sbi->s_alloc_mutex); mutex_unlock(&sbi->s_alloc_mutex);
return;
} }
static int udf_bitmap_prealloc_blocks(struct super_block *sb, static int udf_bitmap_prealloc_blocks(struct super_block *sb,
...@@ -246,7 +246,7 @@ static int udf_bitmap_prealloc_blocks(struct super_block *sb, ...@@ -246,7 +246,7 @@ static int udf_bitmap_prealloc_blocks(struct super_block *sb,
if (first_block + block_count > part_len) if (first_block + block_count > part_len)
block_count = part_len - first_block; block_count = part_len - first_block;
repeat: do {
nr_groups = udf_compute_nr_groups(sb, partition); nr_groups = udf_compute_nr_groups(sb, partition);
block = first_block + (sizeof(struct spaceBitmapDesc) << 3); block = first_block + (sizeof(struct spaceBitmapDesc) << 3);
block_group = block >> (sb->s_blocksize_bits + 3); block_group = block >> (sb->s_blocksize_bits + 3);
...@@ -260,11 +260,11 @@ static int udf_bitmap_prealloc_blocks(struct super_block *sb, ...@@ -260,11 +260,11 @@ static int udf_bitmap_prealloc_blocks(struct super_block *sb,
bit = block % (sb->s_blocksize << 3); bit = block % (sb->s_blocksize << 3);
while (bit < (sb->s_blocksize << 3) && block_count > 0) { while (bit < (sb->s_blocksize << 3) && block_count > 0) {
if (!udf_test_bit(bit, bh->b_data)) { if (!udf_test_bit(bit, bh->b_data))
goto out; goto out;
} else if (DQUOT_PREALLOC_BLOCK(inode, 1)) { else if (DQUOT_PREALLOC_BLOCK(inode, 1))
goto out; goto out;
} else if (!udf_clear_bit(bit, bh->b_data)) { else if (!udf_clear_bit(bit, bh->b_data)) {
udf_debug("bit already cleared for block %d\n", bit); udf_debug("bit already cleared for block %d\n", bit);
DQUOT_FREE_BLOCK(inode, 1); DQUOT_FREE_BLOCK(inode, 1);
goto out; goto out;
...@@ -275,8 +275,8 @@ static int udf_bitmap_prealloc_blocks(struct super_block *sb, ...@@ -275,8 +275,8 @@ static int udf_bitmap_prealloc_blocks(struct super_block *sb,
block++; block++;
} }
mark_buffer_dirty(bh); mark_buffer_dirty(bh);
if (block_count > 0) } while (block_count > 0);
goto repeat;
out: out:
if (udf_add_free_space(sbi, partition, -alloc_count)) if (udf_add_free_space(sbi, partition, -alloc_count))
mark_buffer_dirty(sbi->s_lvid_bh); mark_buffer_dirty(sbi->s_lvid_bh);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment