From: Jose R. Santos Date: Mon, 1 Jun 2009 20:15:40 +0000 (-0400) Subject: Add 64-bit openfs interface X-Git-Tag: v1.42-WIP-0702~165 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4f8d6ab222beea3557e26aba9eefedb81db956ab;p=thirdparty%2Fe2fsprogs.git Add 64-bit openfs interface Add new ext2fs_descriptor_block_loc2() routine that takes blk64_t as an input. Signed-off-by: Jose R. Santos Signed-off-by: "Theodore Ts'o" --- diff --git a/lib/ext2fs/ext2fs.h b/lib/ext2fs/ext2fs.h index 5fd512621..d53d613dd 100644 --- a/lib/ext2fs/ext2fs.h +++ b/lib/ext2fs/ext2fs.h @@ -1165,6 +1165,8 @@ extern errcode_t ext2fs_open2(const char *name, const char *io_options, int flags, int superblock, unsigned int block_size, io_manager manager, ext2_filsys *ret_fs); +extern blk64_t ext2fs_descriptor_block_loc2(ext2_filsys fs, + blk64_t group_block, dgrp_t i); extern blk_t ext2fs_descriptor_block_loc(ext2_filsys fs, blk_t group_block, dgrp_t i); errcode_t ext2fs_get_data_io(ext2_filsys fs, io_channel *old_io); diff --git a/lib/ext2fs/openfs.c b/lib/ext2fs/openfs.c index 1ca63dba3..71cf7e88c 100644 --- a/lib/ext2fs/openfs.c +++ b/lib/ext2fs/openfs.c @@ -29,11 +29,12 @@ #include "ext2fs.h" #include "e2image.h" -blk_t ext2fs_descriptor_block_loc(ext2_filsys fs, blk_t group_block, dgrp_t i) +blk64_t ext2fs_descriptor_block_loc2(ext2_filsys fs, blk64_t group_block, + dgrp_t i) { int bg; int has_super = 0; - int ret_blk; + blk64_t ret_blk; if (!(fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG) || (i < fs->super->s_first_meta_bg)) @@ -42,7 +43,7 @@ blk_t ext2fs_descriptor_block_loc(ext2_filsys fs, blk_t group_block, dgrp_t i) bg = EXT2_DESC_PER_BLOCK(fs->super) * i; if (ext2fs_bg_has_super(fs, bg)) has_super = 1; - ret_blk = ext2fs_group_first_block(fs, bg) + has_super; + ret_blk = ext2fs_group_first_block2(fs, bg) + has_super; /* * If group_block is not the normal value, we're trying to use * the backup group descriptors and superblock --- so use the @@ -58,6 +59,11 @@ blk_t ext2fs_descriptor_block_loc(ext2_filsys fs, blk_t group_block, dgrp_t i) return ret_blk; } +blk_t ext2fs_descriptor_block_loc(ext2_filsys fs, blk_t group_block, dgrp_t i) +{ + return ext2fs_descriptor_block_loc2(fs, group_block, i); +} + errcode_t ext2fs_open(const char *name, int flags, int superblock, unsigned int block_size, io_manager manager, ext2_filsys *ret_fs)