diff options
author | Jose R. Santos <jrs@us.ibm.com> | 2008-03-03 10:41:29 -0600 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2008-03-13 13:47:05 -0400 |
commit | 51b263e3690ba3136fe63e5c722e0593772620e2 (patch) | |
tree | 815629fafa9bc644efd4c5c514d82377a899389c /lib | |
parent | 59ecd32dcb1d890bd52444c7cdeaabf8d9b2dbd1 (diff) | |
download | e2fsprogs-51b263e3690ba3136fe63e5c722e0593772620e2.tar.gz |
Add {read,write}_blk64 to inode_io.c
Add 64-bit block capable routines to inode IO manager. Since fileio.c
does not yet have 64bit support, these routines will not handle 64bit
block numbers correctly yet.
Signed-off-by: Jose R. Santos <jrs@us.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ext2fs/inode_io.c | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/lib/ext2fs/inode_io.c b/lib/ext2fs/inode_io.c index b5c08b90..0e234942 100644 --- a/lib/ext2fs/inode_io.c +++ b/lib/ext2fs/inode_io.c @@ -56,7 +56,11 @@ static errcode_t inode_write_blk(io_channel channel, unsigned long block, static errcode_t inode_flush(io_channel channel); static errcode_t inode_write_byte(io_channel channel, unsigned long offset, int size, const void *data); - +static errcode_t inode_read_blk64(io_channel channel, + unsigned long long block, int count, void *data); +static errcode_t inode_write_blk64(io_channel channel, + unsigned long long block, int count, const void *data); + static struct struct_io_manager struct_inode_manager = { EXT2_ET_MAGIC_IO_MANAGER, "Inode I/O Manager", @@ -66,7 +70,11 @@ static struct struct_io_manager struct_inode_manager = { inode_read_blk, inode_write_blk, inode_flush, - inode_write_byte + inode_write_byte, + NULL, + NULL, + inode_read_blk64, + inode_write_blk64 }; io_manager inode_io_manager = &struct_inode_manager; @@ -197,8 +205,8 @@ static errcode_t inode_set_blksize(io_channel channel, int blksize) } -static errcode_t inode_read_blk(io_channel channel, unsigned long block, - int count, void *buf) +static errcode_t inode_read_blk64(io_channel channel, + unsigned long long block, int count, void *buf) { struct inode_private_data *data; errcode_t retval; @@ -217,8 +225,14 @@ static errcode_t inode_read_blk(io_channel channel, unsigned long block, return ext2fs_file_read(data->file, buf, count, 0); } -static errcode_t inode_write_blk(io_channel channel, unsigned long block, - int count, const void *buf) +static errcode_t inode_read_blk(io_channel channel, unsigned long block, + int count, void *buf) +{ + return inode_read_blk64(channel, block, count, buf); +} + +static errcode_t inode_write_blk64(io_channel channel, + unsigned long long block, int count, const void *buf) { struct inode_private_data *data; errcode_t retval; @@ -237,6 +251,12 @@ static errcode_t inode_write_blk(io_channel channel, unsigned long block, return ext2fs_file_write(data->file, buf, count, 0); } +static errcode_t inode_write_blk(io_channel channel, unsigned long block, + int count, const void *buf) +{ + return inode_write_blk64(channel, block, count, buf); +} + static errcode_t inode_write_byte(io_channel channel, unsigned long offset, int size, const void *buf) { |