aboutsummaryrefslogtreecommitdiffstats
path: root/fs/udf/super.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/udf/super.c')
-rw-r--r--fs/udf/super.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/fs/udf/super.c b/fs/udf/super.c
index 86aa2238bc7b..c19ee38e85b3 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -937,18 +937,22 @@ static void udf_load_fileset(struct super_block *sb, struct buffer_head *bh,
937 root->logicalBlockNum, root->partitionReferenceNum); 937 root->logicalBlockNum, root->partitionReferenceNum);
938} 938}
939 939
940int udf_compute_nr_groups(struct super_block *sb, u32 partition)
941{
942 struct udf_part_map *map = &UDF_SB(sb)->s_partmaps[partition];
943 return (map->s_partition_len +
944 (sizeof(struct spaceBitmapDesc) << 3) +
945 (sb->s_blocksize * 8) - 1) /
946 (sb->s_blocksize * 8);
947}
948
940static struct udf_bitmap *udf_sb_alloc_bitmap(struct super_block *sb, u32 index) 949static struct udf_bitmap *udf_sb_alloc_bitmap(struct super_block *sb, u32 index)
941{ 950{
942 struct udf_part_map *map = &UDF_SB(sb)->s_partmaps[index];
943 struct udf_bitmap *bitmap; 951 struct udf_bitmap *bitmap;
944 int nr_groups; 952 int nr_groups;
945 int size; 953 int size;
946 954
947 /* TODO: move calculating of nr_groups into helper function */ 955 nr_groups = udf_compute_nr_groups(sb, index);
948 nr_groups = (map->s_partition_len +
949 (sizeof(struct spaceBitmapDesc) << 3) +
950 (sb->s_blocksize * 8) - 1) /
951 (sb->s_blocksize * 8);
952 size = sizeof(struct udf_bitmap) + 956 size = sizeof(struct udf_bitmap) +
953 (sizeof(struct buffer_head *) * nr_groups); 957 (sizeof(struct buffer_head *) * nr_groups);
954 958