Many files:
Checkin of e2fsprogs 0.5b
diff --git a/e2fsck/pass1b.c b/e2fsck/pass1b.c
index dd657bf..c98030f 100644
--- a/e2fsck/pass1b.c
+++ b/e2fsck/pass1b.c
@@ -101,7 +101,7 @@
extern ino_t stashed_ino;
extern struct ext2_inode *stashed_inode;
-static char *inode_dup_map;
+static ext2fs_inode_bitmap inode_dup_map;
/*
* Main procedure for handling duplicate blocks
@@ -112,7 +112,8 @@
struct dup_block *p, *q, *next_p, *next_q;
struct dup_inode *r, *next_r;
- retval = ext2fs_allocate_inode_bitmap(fs, &inode_dup_map);
+ retval = ext2fs_allocate_inode_bitmap(fs,
+ "multiply claimed inode map", &inode_dup_map);
if (retval) {
com_err("ext2fs_allocate_inode_bitmap", retval,
"while allocating inode_dup_map");
@@ -127,8 +128,8 @@
* Time to free all of the accumulated data structures that we
* don't need anymore.
*/
- free(inode_dup_map); inode_dup_map = 0;
- free(block_dup_map); block_dup_map = 0;
+ ext2fs_free_inode_bitmap(inode_dup_map); inode_dup_map = 0;
+ ext2fs_free_block_bitmap(block_dup_map); block_dup_map = 0;
for (p = dup_blk; p; p = next_p) {
next_p = p->next_block;
for (q = p; q; q = next_q) {
@@ -177,7 +178,7 @@
while (ino) {
stashed_ino = ino;
if ((ino != EXT2_BAD_INO) &&
- (!ext2fs_test_inode_bitmap(fs, inode_used_map, ino) ||
+ (!ext2fs_test_inode_bitmap(inode_used_map, ino) ||
!inode_has_valid_blocks(&inode)))
goto next;
@@ -230,17 +231,17 @@
return 0;
p = (struct process_block_struct *) private;
- if (ext2fs_test_block_bitmap(fs, block_dup_map, *block_nr)) {
+ if (ext2fs_test_block_bitmap(block_dup_map, *block_nr)) {
/* OK, this is a duplicate block */
if (p->ino != EXT2_BAD_INO) {
if (!p->dup_blocks)
- printf("Duplicate/bad block(s) in inode %ld:",
+ printf("Duplicate/bad block(s) in inode %lu:",
p->ino);
- printf(" %ld", *block_nr);
+ printf(" %lu", *block_nr);
}
p->dup_blocks++;
- ext2fs_mark_block_bitmap(fs, block_dup_map, *block_nr);
- ext2fs_mark_inode_bitmap(fs, inode_dup_map, p->ino);
+ ext2fs_mark_block_bitmap(block_dup_map, *block_nr);
+ ext2fs_mark_inode_bitmap(inode_dup_map, p->ino);
dp = allocate_memory(sizeof(struct dup_block),
"duplicate block record");
dp->block = *block_nr;
@@ -340,7 +341,7 @@
((dir_blocks[i].blockcnt == 0) && (entry <= 2)))
goto next;
- if (!ext2fs_test_inode_bitmap(fs, inode_dup_map,
+ if (!ext2fs_test_inode_bitmap(inode_dup_map,
dirent->inode))
goto next;
@@ -369,7 +370,7 @@
*/
for (p = dup_ino; p; p = p->next) {
if (!p->pathname) {
- sprintf(buf, "<Unknown inode #%ld>", p->ino);
+ sprintf(buf, "<Unknown inode #%lu>", p->ino);
p->pathname = malloc(strlen(buf)+1);
if (!p->pathname) {
fprintf(stderr, "pass1c: couldn't malloc "
@@ -440,7 +441,7 @@
}
time_str = ctime(&p->mtime);
time_str[24] = 0;
- printf("File %s (inode #%ld, mod time %s) \n",
+ printf("File %s (inode #%lu, mod time %s) \n",
p->pathname, p->ino, time_str);
printf(" has %d duplicate blocks, shared with %d file%s:\n",
p->num_dupblocks, shared_len,
@@ -453,7 +454,7 @@
continue;
time_str = ctime(&s->mtime);
time_str[24] = 0;
- printf("\t%s (inode #%ld, mod time %s)\n",
+ printf("\t%s (inode #%lu, mod time %s)\n",
s->pathname, s->ino, time_str);
}
if (file_ok) {
@@ -489,22 +490,22 @@
if (!*block_nr)
return 0;
- if (ext2fs_test_block_bitmap(fs, block_dup_map, *block_nr)) {
+ if (ext2fs_test_block_bitmap(block_dup_map, *block_nr)) {
for (p = dup_blk; p; p = p->next_block)
if (p->block == *block_nr)
break;
if (p) {
p->num_bad--;
if (p->num_bad == 1)
- ext2fs_unmark_block_bitmap(fs, block_dup_map,
+ ext2fs_unmark_block_bitmap(block_dup_map,
*block_nr);
} else
com_err("delete_file_block", 0,
"internal error; can't find dup_blk for %d\n",
*block_nr);
} else {
- ext2fs_unmark_block_bitmap(fs, block_found_map, *block_nr);
- ext2fs_unmark_block_bitmap(fs, fs->block_map, *block_nr);
+ ext2fs_unmark_block_bitmap(block_found_map, *block_nr);
+ ext2fs_unmark_block_bitmap(fs->block_map, *block_nr);
}
return 0;
@@ -525,27 +526,17 @@
com_err("delete_file", retval,
"while calling ext2fs_block_iterate for inode %d",
dp->ino);
- ext2fs_unmark_inode_bitmap(fs, inode_used_map, dp->ino);
- ext2fs_unmark_inode_bitmap(fs, inode_dir_map, dp->ino);
+ ext2fs_unmark_inode_bitmap(inode_used_map, dp->ino);
+ ext2fs_unmark_inode_bitmap(inode_dir_map, dp->ino);
if (inode_bad_map)
- ext2fs_unmark_inode_bitmap(fs, inode_bad_map, dp->ino);
- ext2fs_unmark_inode_bitmap(fs, fs->inode_map, dp->ino);
+ ext2fs_unmark_inode_bitmap(inode_bad_map, dp->ino);
+ ext2fs_unmark_inode_bitmap(fs->inode_map, dp->ino);
ext2fs_mark_ib_dirty(fs);
ext2fs_mark_bb_dirty(fs);
- retval = ext2fs_read_inode(fs, dp->ino, &inode);
- if (retval) {
- com_err("delete_file", retval, "while reading inode %d",
- dp->ino);
- return;
- }
+ e2fsck_read_inode(fs, dp->ino, &inode, "delete_file");
inode.i_links_count = 0;
inode.i_dtime = time(0);
- retval = ext2fs_write_inode(fs, dp->ino, &inode);
- if (retval) {
- com_err("delete_file", retval, "while writing inode %d",
- dp->ino);
- return;
- }
+ e2fsck_write_inode(fs, dp->ino, &inode, "delete_file");
}
struct clone_struct {
@@ -566,7 +557,7 @@
if (!*block_nr)
return 0;
- if (ext2fs_test_block_bitmap(fs, block_dup_map, *block_nr)) {
+ if (ext2fs_test_block_bitmap(block_dup_map, *block_nr)) {
for (p = dup_blk; p; p = p->next_block)
if (p->block == *block_nr)
break;
@@ -591,12 +582,12 @@
}
p->num_bad--;
if (p->num_bad == 1)
- ext2fs_unmark_block_bitmap(fs, block_dup_map,
+ ext2fs_unmark_block_bitmap(block_dup_map,
*block_nr);
*block_nr = new_block;
- ext2fs_mark_block_bitmap(fs, block_found_map,
+ ext2fs_mark_block_bitmap(block_found_map,
new_block);
- ext2fs_mark_block_bitmap(fs, fs->block_map, new_block);
+ ext2fs_mark_block_bitmap(fs->block_map, new_block);
return BLOCK_CHANGED;
} else
com_err("clone_file_block", 0,