From: Jose R. Santos Date: Mon, 1 Jun 2009 20:15:40 +0000 (-0400) Subject: Add 64-bit dirblock interface X-Git-Tag: v1.42-WIP-0702~171 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=57e2467d6211b2ff0dbcc23f705afd3b95fb917f;p=thirdparty%2Fe2fsprogs.git Add 64-bit dirblock interface Add new ext2fs_(read|write)_dir_block3() routines that take blk64_t as an input. Signed-off-by: Jose R. Santos Signed-off-by: "Theodore Ts'o" --- diff --git a/lib/ext2fs/dirblock.c b/lib/ext2fs/dirblock.c index 6542a81d6..c8dfce66d 100644 --- a/lib/ext2fs/dirblock.c +++ b/lib/ext2fs/dirblock.c @@ -19,7 +19,7 @@ #include "ext2_fs.h" #include "ext2fs.h" -errcode_t ext2fs_read_dir_block2(ext2_filsys fs, blk_t block, +errcode_t ext2fs_read_dir_block3(ext2_filsys fs, blk64_t block, void *buf, int flags EXT2FS_ATTR((unused))) { errcode_t retval; @@ -28,7 +28,7 @@ errcode_t ext2fs_read_dir_block2(ext2_filsys fs, blk_t block, unsigned int name_len, rec_len; - retval = io_channel_read_blk(fs->io, block, 1, buf); + retval = io_channel_read_blk64(fs->io, block, 1, buf); if (retval) return retval; @@ -58,14 +58,20 @@ errcode_t ext2fs_read_dir_block2(ext2_filsys fs, blk_t block, return retval; } +errcode_t ext2fs_read_dir_block2(ext2_filsys fs, blk_t block, + void *buf, int flags EXT2FS_ATTR((unused))) +{ + return ext2fs_read_dir_block3(fs, block, buf, flags); +} + errcode_t ext2fs_read_dir_block(ext2_filsys fs, blk_t block, void *buf) { - return ext2fs_read_dir_block2(fs, block, buf, 0); + return ext2fs_read_dir_block3(fs, block, buf, 0); } -errcode_t ext2fs_write_dir_block2(ext2_filsys fs, blk_t block, +errcode_t ext2fs_write_dir_block3(ext2_filsys fs, blk64_t block, void *inbuf, int flags EXT2FS_ATTR((unused))) { #ifdef WORDS_BIGENDIAN @@ -98,7 +104,7 @@ errcode_t ext2fs_write_dir_block2(ext2_filsys fs, blk_t block, if (flags & EXT2_DIRBLOCK_V2_STRUCT) dirent->name_len = ext2fs_swab16(dirent->name_len); } - retval = io_channel_write_blk(fs->io, block, 1, buf); + retval = io_channel_write_blk64(fs->io, block, 1, buf); ext2fs_free_mem(&buf); return retval; #else @@ -106,10 +112,15 @@ errcode_t ext2fs_write_dir_block2(ext2_filsys fs, blk_t block, #endif } +errcode_t ext2fs_write_dir_block2(ext2_filsys fs, blk_t block, + void *inbuf, int flags EXT2FS_ATTR((unused))) +{ + return ext2fs_write_dir_block3(fs, block, inbuf, flags); +} errcode_t ext2fs_write_dir_block(ext2_filsys fs, blk_t block, void *inbuf) { - return ext2fs_write_dir_block2(fs, block, inbuf, 0); + return ext2fs_write_dir_block3(fs, block, inbuf, 0); } diff --git a/lib/ext2fs/ext2fs.h b/lib/ext2fs/ext2fs.h index b10cba19e..856b1efc1 100644 --- a/lib/ext2fs/ext2fs.h +++ b/lib/ext2fs/ext2fs.h @@ -843,10 +843,14 @@ extern errcode_t ext2fs_read_dir_block(ext2_filsys fs, blk_t block, void *buf); extern errcode_t ext2fs_read_dir_block2(ext2_filsys fs, blk_t block, void *buf, int flags); +extern errcode_t ext2fs_read_dir_block3(ext2_filsys fs, blk64_t block, + void *buf, int flags); extern errcode_t ext2fs_write_dir_block(ext2_filsys fs, blk_t block, void *buf); extern errcode_t ext2fs_write_dir_block2(ext2_filsys fs, blk_t block, void *buf, int flags); +extern errcode_t ext2fs_write_dir_block3(ext2_filsys fs, blk64_t block, + void *buf, int flags); /* dirhash.c */ extern errcode_t ext2fs_dirhash(int version, const char *name, int len,