diff options
Diffstat (limited to 'lib/ext2fs/namei.c')
-rw-r--r-- | lib/ext2fs/namei.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/ext2fs/namei.c b/lib/ext2fs/namei.c index efcc02b7..307aecc8 100644 --- a/lib/ext2fs/namei.c +++ b/lib/ext2fs/namei.c @@ -34,6 +34,7 @@ static errcode_t follow_link(ext2_filsys fs, ext2_ino_t root, ext2_ino_t dir, char *buffer = 0; errcode_t retval; struct ext2_inode ei; + blk64_t blk; #ifdef NAMEI_DEBUG printf("follow_link: root=%lu, dir=%lu, inode=%lu, lc=%d\n", @@ -49,12 +50,16 @@ static errcode_t follow_link(ext2_filsys fs, ext2_ino_t root, ext2_ino_t dir, if (link_count++ >= EXT2FS_MAX_NESTED_LINKS) return EXT2_ET_SYMLINK_LOOP; - /* FIXME-64: Actually, this is FIXME EXTENTS */ if (ext2fs_inode_data_blocks(fs,&ei)) { + retval = ext2fs_bmap2(fs, inode, &ei, NULL, 0, 0, NULL, &blk); + if (retval) + return retval; + retval = ext2fs_get_mem(fs->blocksize, &buffer); if (retval) return retval; - retval = io_channel_read_blk(fs->io, ei.i_block[0], 1, buffer); + + retval = io_channel_read_blk64(fs->io, blk, 1, buffer); if (retval) { ext2fs_free_mem(&buffer); return retval; |