* require that e2fsck use VM first.
*/
+#include "config.h"
#include <string.h>
#include <ctype.h>
#include <errno.h>
};
static int fill_dir_block(ext2_filsys fs,
- blk_t *block_nr,
+ blk64_t *block_nr,
e2_blkcnt_t blockcnt,
- blk_t ref_block EXT2FS_ATTR((unused)),
+ blk64_t ref_block EXT2FS_ATTR((unused)),
int ref_offset EXT2FS_ATTR((unused)),
void *priv_data)
{
dirent = (struct ext2_dir_entry *) dir;
(void) ext2fs_set_rec_len(fs, fs->blocksize, dirent);
} else {
- fd->err = ext2fs_read_dir_block(fs, *block_nr, dir);
+ fd->err = ext2fs_read_dir_block3(fs, *block_nr, dir, 0);
if (fd->err)
return BLOCK_ABORT;
}
return retval;
dirent = (struct ext2_dir_entry *) block_start;
prev_rec_len = 0;
+ rec_len = 0;
left = fs->blocksize;
slack = fd->compress ? 12 :
(fs->blocksize * ctx->htree_slack_percentage)/100;
if (slack < 12)
slack = 12;
- for (i=0; i < fd->num_array; i++) {
+ for (i = 0; i < fd->num_array; i++) {
ent = fd->harray + i;
if (ent->dir->inode == 0)
continue;
* Helper function which writes out a directory block.
*/
static int write_dir_block(ext2_filsys fs,
- blk_t *block_nr,
+ blk64_t *block_nr,
e2_blkcnt_t blockcnt,
- blk_t ref_block EXT2FS_ATTR((unused)),
+ blk64_t ref_block EXT2FS_ATTR((unused)),
int ref_offset EXT2FS_ATTR((unused)),
void *priv_data)
{
struct write_dir_struct *wd = (struct write_dir_struct *) priv_data;
- blk_t blk;
+ blk64_t blk;
char *dir;
if (*block_nr == 0)
if (blockcnt >= wd->outdir->num) {
e2fsck_read_bitmaps(wd->ctx);
blk = *block_nr;
- ext2fs_unmark_block_bitmap(wd->ctx->block_found_map, blk);
- ext2fs_block_alloc_stats(fs, blk, -1);
+ ext2fs_unmark_block_bitmap2(wd->ctx->block_found_map, blk);
+ ext2fs_block_alloc_stats2(fs, blk, -1);
*block_nr = 0;
wd->cleared++;
return BLOCK_CHANGED;
return 0;
dir = wd->outdir->buf + (blockcnt * fs->blocksize);
- wd->err = ext2fs_write_dir_block(fs, *block_nr, dir);
+ wd->err = ext2fs_write_dir_block3(fs, *block_nr, dir, 0);
if (wd->err)
return BLOCK_ABORT;
return 0;
wd.ctx = ctx;
wd.cleared = 0;
- retval = ext2fs_block_iterate2(fs, ino, 0, 0,
+ retval = ext2fs_block_iterate3(fs, ino, 0, 0,
write_dir_block, &wd);
if (retval)
return retval;
retry_nohash:
/* Read in the entire directory into memory */
- retval = ext2fs_block_iterate2(fs, ino, 0, 0,
+ retval = ext2fs_block_iterate3(fs, ino, 0, 0,
fill_dir_block, &fd);
if (fd.err) {
retval = fd.err;