Browse Source

udf: Call udf_add_free_space() for more blocks at once in udf_free_blocks()

There's no need to call udf_add_free_space() for one block at a time. It saves
us noticeable amount of work and yields different result from the original
code only if the filesystem is corrupted and bitmap bit is already cleared.
In such case counter of free blocks is probably wrong anyways so the change
does not matter.

Signed-off-by: Jan Kara <jack@suse.cz>
Jan Kara 14 years ago
parent
commit
7abc2e45e4
1 changed files with 1 additions and 2 deletions
  1. 1 2
      fs/udf/balloc.c

+ 1 - 2
fs/udf/balloc.c

@@ -157,10 +157,9 @@ static void udf_bitmap_free_blocks(struct super_block *sb,
 				udf_debug("bit %ld already set\n", bit + i);
 				udf_debug("bit %ld already set\n", bit + i);
 				udf_debug("byte=%2x\n",
 				udf_debug("byte=%2x\n",
 					((char *)bh->b_data)[(bit + i) >> 3]);
 					((char *)bh->b_data)[(bit + i) >> 3]);
-			} else {
-				udf_add_free_space(sb, sbi->s_partition, 1);
 			}
 			}
 		}
 		}
+		udf_add_free_space(sb, sbi->s_partition, count);
 		mark_buffer_dirty(bh);
 		mark_buffer_dirty(bh);
 		if (overflow) {
 		if (overflow) {
 			block += count;
 			block += count;