Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+59 −59
Original line number Original line Diff line number Diff line
@@ -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,
		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,
	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,
		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,
			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);