ext4: assign get_fs()->dev_desc before using it
authorStephen Warren <swarren@nvidia.com>
Thu, 23 May 2013 10:22:10 +0000 (10:22 +0000)
committerTom Rini <trini@ti.com>
Fri, 24 May 2013 14:04:23 +0000 (10:04 -0400)
Commit 50ce4c0 "fs/ext4: Support device block sizes != 512 bytes"
modified ext4fs_set_blk_dev() to calculate total_sect based on
get_fs()->dev_desc->log2blksz rather than SECTOR_SIZE. However, this
value wasn't yet assigned. Move the assignment earlier so the code
doesn't crash or hang.

Cc: Egbert Eich <eich@suse.com>
Tested-by: Tom Rini <trini@ti.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
fs/ext4/dev.c

index 3e993cc220f09d97f85538adeee51eded9bf7076..81b7633b59cdc181cf20abd4ffb209d85d0aa37c 100644 (file)
@@ -51,11 +51,11 @@ void ext4fs_set_blk_dev(block_dev_desc_t *rbdd, disk_partition_t *info)
 {
        assert(rbdd->blksz == (1 << rbdd->log2blksz));
        ext4fs_block_dev_desc = rbdd;
+       get_fs()->dev_desc = rbdd;
        part_info = info;
        part_offset = info->start;
        get_fs()->total_sect = (info->size * info->blksz) >>
                get_fs()->dev_desc->log2blksz;
-       get_fs()->dev_desc = rbdd;
 }
 
 int ext4fs_devread(int sector, int byte_offset, int byte_len, char *buf)