gfs2_convert: corrupts file system when directory has di_height 3
This patch fixes the conversion of directory inodes with height >= 2.
It moves a lot of code around, mainly because two functions
(adjust_indirect_blocks) and (adjust_jdata_inode) were doing a lot of the same
things and the latter function was too long. Adding support for directory
conversion would've added a third function that would duplicate a lot of the
same code... so I consolidated the common things into two smaller functions,
now called adjust_indirect_blocks() and get_metablocks(). The file-type
specific functions are now in two separate functions fix_ind_jdata() and
fix_ind_reg_or_dir().
Resolves: rhbz#643099
Signed-off-by: Abhi Das <adas@redhat.com>