]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
Many files:
authorTheodore Ts'o <tytso@mit.edu>
Mon, 19 Jan 1998 14:55:24 +0000 (14:55 +0000)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 19 Jan 1998 14:55:24 +0000 (14:55 +0000)
  resize2fs.h: If EXT2_FLAT_INCLUDES is defined, then assume all
   of the ext2-specific header files are in a flat directory.
  ext2_block_move.c, ext2_inode_move.c, extent.c, resize2fs.c,
   resize2fs.h: Rename variables named "new" to "new_block",
   "new_inode", or "new_loc" to avoid C++ reserved word
   clash.
  ext2_block_move.c, ext2_inode_move.c, extent.c, resize2fs.c,
   sim_progress.c: Use ext2fs_get_memory(),
   ext2fs_free_memory(), et. al., instead of malloc() and
   free().
  ext2_block_move.c, ext2_inode_move.c, extent.c: Explicitly cast
   all assignments from void * to be compatible with C++.
  banalysis.c, banalysis.h, ext2_inode_move.c, ext2_block_move.c:
   Change private to priv_data to avoid C++ namespace clash.
ChangeLog, badblocks.8.in:
  badblocks.8.in: Add documentation for the -s option.

misc/ChangeLog
misc/badblocks.8.in
resize/ChangeLog
resize/banalysis.c
resize/banalysis.h
resize/ext2_block_move.c
resize/ext2_inode_move.c
resize/extent.c
resize/resize2fs.c
resize/resize2fs.h
resize/sim_progress.c

index 859ebc62b17d8d844bf9ede851ebfb5c8b3786dd..51a2969653d3f20a20ccf71d2251ed613b9053e7 100644 (file)
@@ -1,3 +1,7 @@
+Mon Dec  1 17:01:04 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
+
+       * badblocks.8.in: Add documentation for the -s option.
+
 Fri Oct 24 23:37:52 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * fsck.c: 
index 88adb340bb7877dab9665ef2732c11e5abef9203..a9eacd8f102f273d55fd4f25d2106a20c1f7adcd 100644 (file)
@@ -13,6 +13,9 @@ block-size
 output_file
 ]
 [
+.B \-s
+]
+[
 .B \-v
 ]
 [
@@ -39,6 +42,10 @@ Write the list of bad blocks to the specified file. Without this option,
 .B badblocks
 displays the list on its standard output.
 .TP
+.I -s
+Show the progress of the scan by writing out the block numbers as they
+are checked.
+.TP
 .I -v
 Verbose mode.
 .TP
index 31504a60782c160ec60c10a00b2a08cbf03a5817..f4a5fffc7caad8e99e8716a8576bca197100e58d 100644 (file)
@@ -1,3 +1,26 @@
+Mon Jan 19 09:12:28 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
+
+       * resize2fs.h: If EXT2_FLAT_INCLUDES is defined, then assume all
+               of the ext2-specific header files are in a flat directory.
+
+       * ext2_block_move.c, ext2_inode_move.c, extent.c, resize2fs.c,
+               resize2fs.h: Rename variables named "new" to "new_block",
+               "new_inode", or "new_loc" to avoid C++ reserved word
+               clash.
+       
+       * ext2_block_move.c, ext2_inode_move.c, extent.c, resize2fs.c,
+               sim_progress.c: Use ext2fs_get_memory(),
+               ext2fs_free_memory(), et. al., instead of malloc() and
+               free().
+       
+       * ext2_block_move.c, ext2_inode_move.c, extent.c: Explicitly cast
+               all assignments from void * to be compatible with C++.
+       
+Mon Dec 29 19:09:45 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
+
+       * banalysis.c, banalysis.h, ext2_inode_move.c, ext2_block_move.c:
+               Change private to priv_data to avoid C++ namespace clash.
+
 Mon Nov  3 14:45:06 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * resize2fs.h: Remove STDC magic, since everyone is STDC these days.
index 5b02d22372d76b0986220985501c6681834d098a..638ed7587036b87030974f95062ece7ecbdea8a2 100644 (file)
 struct process_block_struct {
        struct ext2_block_analyzer_funcs *funcs;
        struct ext2_inode_context *ctx;
-       void *private;
+       void *priv_data;
 };
 
 static int process_block(ext2_filsys fs, blk_t *block_nr,
                         int blockcnt, blk_t ref_block,
-                        int ref_offset, void *private)
+                        int ref_offset, void *priv_data)
 {
-       struct process_block_struct *pb = private;
+       struct process_block_struct *pb = priv_data;
        blk_t   new_block;
        struct ext2_block_relocate_entry ent;
 
@@ -37,7 +37,7 @@ static int process_block(ext2_filsys fs, blk_t        *block_nr,
                ref_offset = blockcnt;
 
        new_block = pb->funcs->block_analyze(fs, *block_nr, ref_block,
-                                            ref_offset, pb->ctx, pb->private);
+                                            ref_offset, pb->ctx, pb->priv_data);
        if (new_block) {
                ent.new = new_block;
                ent.offset = ref_offset;
@@ -56,7 +56,7 @@ static int process_block(ext2_filsys fs, blk_t        *block_nr,
 errcode_t ext2_block_analyze(ext2_filsys fs,
                             struct ext2_block_analyzer_funcs *funcs,
                             ext2_brel block_relocation_table,
-                            void *private)
+                            void *priv_data)
 {
        ino_t   ino;
        struct ext2_inode inode;
@@ -71,7 +71,7 @@ errcode_t ext2_block_analyze(ext2_filsys fs,
                return retval;
 
        pb.funcs = funcs;
-       pb.private = private;
+       pb.priv_data = priv_data;
        pb.ctx = &ctx;
        
        block_buf = malloc(fs->blocksize * 3);
@@ -81,7 +81,7 @@ errcode_t ext2_block_analyze(ext2_filsys fs,
        retval = ext2fs_get_next_inode(scan, &ino, &inode);
        if (retval)
                return retval;
-       ctx.ctx = private;
+       ctx.ctx = priv_data;
        ctx.brel = block_relocation_table;
        while (ino) {
                if ((inode.i_links_count == 0) ||
@@ -93,7 +93,7 @@ errcode_t ext2_block_analyze(ext2_filsys fs,
                ctx.error = 0;
 
                if (funcs->pre_analyze &&
-                   !(*funcs->pre_analyze)(fs, &ctx, private))
+                   !(*funcs->pre_analyze)(fs, &ctx, priv_data))
                        goto next;
 
                retval = ext2fs_block_iterate2(fs, ino, 0, block_buf,
@@ -102,7 +102,7 @@ errcode_t ext2_block_analyze(ext2_filsys fs,
                        return retval;
 
                if (funcs->post_analyze) 
-                       (funcs->post_analyze)(fs, &ctx, private);
+                       (funcs->post_analyze)(fs, &ctx, priv_data);
 
        next:
                retval = ext2fs_get_next_inode(scan, &ino, &inode);
index 247413a06cc63fb2b034df87b245a7a4b6c8ba31..18cf98ec7db065d653de4999a20a1ffed1ea1a96 100644 (file)
@@ -13,18 +13,18 @@ struct ext2_inode_context {
 struct ext2_block_analyzer_funcs {
        int (*pre_analyze)(ext2_filsys fs,
                           struct ext2_inode_context *icontext,
-                          void *private);
+                          void *priv_data);
        blk_t (*block_analyze)(ext2_filsys fs, blk_t blk,
                               blk_t ref_block, int ref_offset, 
                               struct ext2_inode_context *icontext,
-                              void *private);
+                              void *priv_data);
        void (*post_analyze)(ext2_filsys fs,
                             struct ext2_inode_context *icontext,
-                            void *private);
+                            void *priv_data);
 };
 
 errcode_t ext2_block_analyze(ext2_filsys fs,
                             struct ext2_block_analyzer_funcs *funcs,
                             ext2_brel block_relocation_table,
-                            void *private);
+                            void *priv_data);
 
index 3170e95bd198242a05006e487e2a17bef053a59b..bcddb1d7be2183d19a88f4f193343a021744b8e2 100644 (file)
@@ -21,23 +21,23 @@ struct process_block_struct {
 
 static int process_block(ext2_filsys fs, blk_t *block_nr,
                         int blockcnt, blk_t ref_block,
-                        int ref_offset, void *private)
+                        int ref_offset, void *priv_data)
 {
-       struct process_block_struct *pb = private;
+       struct process_block_struct *pb;
        errcode_t       retval;
-       blk_t           block, new;
+       blk_t           block, new_block;
        int             ret = 0;
 
+       pb = (struct process_block_struct *) priv_data;
        block = *block_nr;
-
-       new = ext2fs_extent_translate(pb->bmap, block);
-       if (new) {
-               *block_nr = new;
+       new_block = ext2fs_extent_translate(pb->bmap, block);
+       if (new_block) {
+               *block_nr = new_block;
                ret |= BLOCK_CHANGED;
 #ifdef RESIZE2FS_DEBUG
                if (pb->flags & RESIZE_DEBUG_BMOVE)
                        printf("ino=%ld, blockcnt=%d, %u->%u\n", pb->ino,
-                              blockcnt, block, new);
+                              blockcnt, block, new_block);
 #endif
        }
 
@@ -56,7 +56,7 @@ static int process_block(ext2_filsys fs, blk_t        *block_nr,
 errcode_t ext2fs_block_move(ext2_resize_t rfs)
 {
        ext2_extent             bmap;
-       blk_t                   blk, old, new;
+       blk_t                   blk, old_blk, new_blk;
        ext2_filsys             fs = rfs->new_fs;
        ext2_filsys             old_fs = rfs->old_fs;
        ino_t                   ino;
@@ -64,17 +64,18 @@ errcode_t ext2fs_block_move(ext2_resize_t rfs)
        errcode_t               retval;
        struct process_block_struct pb;
        ext2_inode_scan         scan = 0;
-       char                    *block_buf;
+       char                    *block_buf = 0;
        int                     size, c;
        int                     to_move, moved;
        ext2_sim_progmeter progress = 0;
 
-       new = fs->super->s_first_data_block;
+       new_blk = fs->super->s_first_data_block;
        if (!rfs->itable_buf) {
-               rfs->itable_buf = malloc(fs->blocksize *
-                                        fs->inode_blocks_per_group);
-               if (!rfs->itable_buf)
-                       return ENOMEM;
+               retval = ext2fs_get_mem(fs->blocksize *
+                                       fs->inode_blocks_per_group,
+                                       (void **) &rfs->itable_buf);
+               if (retval)
+                       return retval;
        }
        retval = ext2fs_create_extent_table(&bmap, 0);
        if (retval)
@@ -93,18 +94,18 @@ errcode_t ext2fs_block_move(ext2_resize_t rfs)
                        continue;
 
                while (1) {
-                       if (new >= fs->super->s_blocks_count) {
+                       if (new_blk >= fs->super->s_blocks_count) {
                                retval = ENOSPC;
                                goto errout;
                        }
-                       if (!ext2fs_test_block_bitmap(fs->block_map, new) &&
+                       if (!ext2fs_test_block_bitmap(fs->block_map, new_blk) &&
                            !ext2fs_test_block_bitmap(rfs->reserve_blocks,
-                                                     new))
+                                                     new_blk))
                                break;
-                       new++;
+                       new_blk++;
                }
-               ext2fs_mark_block_bitmap(fs->block_map, new);
-               ext2fs_add_extent_entry(bmap, blk, new);
+               ext2fs_mark_block_bitmap(fs->block_map, new_blk);
+               ext2fs_add_extent_entry(bmap, blk, new_blk);
                to_move++;
        }
        if (to_move == 0)
@@ -123,28 +124,28 @@ errcode_t ext2fs_block_move(ext2_resize_t rfs)
        }
        
        while (1) {
-               retval = ext2fs_iterate_extent(bmap, &old, &new, &size);
+               retval = ext2fs_iterate_extent(bmap, &old_blk, &new_blk, &size);
                if (retval) goto errout;
                if (!size)
                        break;
 #ifdef RESIZE2FS_DEBUG
                if (rfs->flags & RESIZE_DEBUG_BMOVE)
                        printf("Moving %d blocks %u->%u\n", size,
-                              old, new);
+                              old_blk, new_blk);
 #endif
                do {
                        c = size;
                        if (c > fs->inode_blocks_per_group)
                                c = fs->inode_blocks_per_group;
-                       retval = io_channel_read_blk(fs->io, old, c,
+                       retval = io_channel_read_blk(fs->io, old_blk, c,
                                                     rfs->itable_buf);
                        if (retval) goto errout;
-                       retval = io_channel_write_blk(fs->io, new, c,
+                       retval = io_channel_write_blk(fs->io, new_blk, c,
                                                      rfs->itable_buf);
                        if (retval) goto errout;
                        size -= c;
-                       new += c;
-                       old += c;
+                       new_blk += c;
+                       old_blk += c;
                        moved += c;
                        io_channel_flush(fs->io);
                        if (progress)
@@ -167,11 +168,9 @@ errcode_t ext2fs_block_move(ext2_resize_t rfs)
        pb.bmap = bmap; 
        pb.flags = rfs->flags;
 
-       block_buf = malloc(old_fs->blocksize * 3);
-       if (!block_buf) {
-               retval = ENOMEM;
+       retval = ext2fs_get_mem(old_fs->blocksize * 3, (void **) &block_buf);
+       if (retval)
                goto errout;
-       }
 
        /*
         * We're going to initialize the dblist while we're at it.
@@ -229,6 +228,8 @@ errout:
        ext2fs_free_extent_table(bmap);
        if (scan)
                ext2fs_close_inode_scan(scan);
+       if (block_buf)
+               ext2fs_free_mem((void **) &block_buf);
        return retval;
 }
 
index 3ec74b8a406c1a470dcf3ed9e4c45a1a07653571..6b3600fbe986d0a0c0218c31295519e155a66e26 100644 (file)
@@ -19,9 +19,9 @@ struct callback_info {
 };
                
 static errcode_t progress_callback(ext2_filsys fs, ext2_inode_scan scan,
-                                  dgrp_t group, void * private)
+                                  dgrp_t group, void * priv_data)
 {
-       struct callback_info *cb = private;
+       struct callback_info *cb = (struct callback_info *) priv_data;
 
        if (!cb->progress)
                return 0;
@@ -40,10 +40,10 @@ struct istruct {
 
 static int check_and_change_inodes(ino_t dir, int entry,
                                   struct ext2_dir_entry *dirent, int offset,
-                                  int  blocksize, char *buf, void *private)
+                                  int  blocksize, char *buf, void *priv_data)
 {
-       struct istruct *is = private;
-       ino_t   new;
+       struct istruct *is = (struct istruct *) priv_data;
+       ino_t   new_inode;
 
        if (is->progress && offset == 0) {
                ext2fs_progress_update(is->progress, ++is->num);
@@ -52,18 +52,18 @@ static int check_and_change_inodes(ino_t dir, int entry,
        if (!dirent->inode)
                return 0;
 
-       new = ext2fs_extent_translate(is->imap, dirent->inode);
+       new_inode = ext2fs_extent_translate(is->imap, dirent->inode);
 
-       if (!new)
+       if (!new_inode)
                return 0;
 #ifdef RESIZE2FS_DEBUG
        if (is->flags & RESIZE_DEBUG_INODEMAP)
                printf("Inode translate (dir=%ld, name=%.*s, %u->%ld)\n",
                       dir, dirent->name_len, dirent->name,
-                      dirent->inode, new);
+                      dirent->inode, new_inode);
 #endif
 
-       dirent->inode = new;
+       dirent->inode = new_inode;
 
        return DIRENT_CHANGED;
 }
@@ -80,12 +80,13 @@ struct process_block_struct {
 
 static int process_block(ext2_filsys fs, blk_t *block_nr,
                         int blockcnt, blk_t ref_block,
-                        int ref_offset, void *private)
+                        int ref_offset, void *priv_data)
 {
-       struct process_block_struct *pb = private;
+       struct process_block_struct *pb;
        errcode_t       retval;
        int             ret = 0;
 
+       pb = (struct process_block_struct *) priv_data;
        retval = ext2fs_add_dir_block(fs->dblist, pb->ino,
                                      *block_nr, blockcnt);
        if (retval) {
@@ -99,7 +100,7 @@ static errcode_t get_dblist(ext2_filsys fs, int flags)
 {
        ext2_inode_scan         scan = 0;
        errcode_t               retval;
-       char                    *block_buf;
+       char                    *block_buf = 0;
        struct process_block_struct     pb;
        ext2_sim_progmeter      progress = 0; 
        ino_t                   ino;
@@ -110,11 +111,9 @@ static errcode_t get_dblist(ext2_filsys fs, int flags)
 
        pb.error = 0;
 
-       block_buf = malloc(fs->blocksize * 3);
-       if (!block_buf) {
-               retval = ENOMEM;
+       retval = ext2fs_get_mem(fs->blocksize * 3, (void **) &block_buf);
+       if (retval)
                goto errout;
-       }
 
        /*
         * We're going to initialize the dblist while we're at it.
@@ -170,13 +169,15 @@ errout:
                ext2fs_progress_close(progress);
        if (scan)
                ext2fs_close_inode_scan(scan);
+       if (block_buf)
+               ext2fs_free_mem((void **) &block_buf);
        return retval;
 }
 
 
 errcode_t ext2fs_inode_move(ext2_resize_t rfs)
 {
-       ino_t                   ino, new;
+       ino_t                   ino, new_inode;
        struct ext2_inode       inode;
        ext2_inode_scan         scan = NULL;
        ext2_extent             imap;
@@ -217,7 +218,7 @@ errcode_t ext2fs_inode_move(ext2_resize_t rfs)
        }
        callback_info.progress = progress;
 
-       new = EXT2_FIRST_INODE(rfs->new_fs->super);
+       new_inode = EXT2_FIRST_INODE(rfs->new_fs->super);
        /*
         * First, copy all of the inodes that need to be moved
         * elsewhere in the inode table
@@ -237,28 +238,28 @@ errcode_t ext2fs_inode_move(ext2_resize_t rfs)
                 */
                while (1) { 
                        if (!ext2fs_test_inode_bitmap(rfs->new_fs->inode_map, 
-                                                     new))
+                                                     new_inode))
                                break;
-                       new++;
-                       if (new > rfs->new_fs->super->s_inodes_count) {
+                       new_inode++;
+                       if (new_inode > rfs->new_fs->super->s_inodes_count) {
                                retval = ENOSPC;
                                goto errout;
                        }
                }
-               ext2fs_mark_inode_bitmap(rfs->new_fs->inode_map, new);
-               retval = ext2fs_write_inode(rfs->old_fs, new, &inode);
+               ext2fs_mark_inode_bitmap(rfs->new_fs->inode_map, new_inode);
+               retval = ext2fs_write_inode(rfs->old_fs, new_inode, &inode);
                if (retval) goto errout;
 
-               group = (new-1) / EXT2_INODES_PER_GROUP(rfs->new_fs->super);
+               group = (new_inode-1) / EXT2_INODES_PER_GROUP(rfs->new_fs->super);
                if (LINUX_S_ISDIR(inode.i_mode))
                        rfs->new_fs->group_desc[group].bg_used_dirs_count++;
                
 #ifdef RESIZE2FS_DEBUG
                if (rfs->flags & RESIZE_DEBUG_INODEMAP)
-                       printf("Inode moved %ld->%ld\n", ino, new);
+                       printf("Inode moved %ld->%ld\n", ino, new_inode);
 #endif
 
-               ext2fs_add_extent_entry(imap, ino, new);
+               ext2fs_add_extent_entry(imap, ino, new_inode);
        }
        io_channel_flush(rfs->new_fs->io);
        if (progress) {
index 0f0ef4cd7372f188ab96c7dff625024762016261..b51e6532a19af3e427c7aada8b4aa24e58a01a20 100644 (file)
@@ -15,7 +15,7 @@
 #include "resize2fs.h"
 
 struct ext2_extent_entry {
-       __u32   old, new;
+       __u32   old_loc, new_loc;
        int     size;
 };
 
@@ -32,25 +32,29 @@ struct _ext2_extent {
  */
 errcode_t ext2fs_create_extent_table(ext2_extent *ret_extent, int size) 
 {
-       ext2_extent     new;
-
-       new = malloc(sizeof(struct _ext2_extent));
-       if (!new)
-               return ENOMEM;
-       memset(new, 0, sizeof(struct _ext2_extent));
-
-       new->size = size ? size : 50;
-       new->cursor = 0;
-       new->num = 0;
-       new->sorted = 1;
-
-       new->list = malloc(sizeof(struct ext2_extent_entry) * new->size);
-       if (!new->list) {
-               free(new);
-               return ENOMEM;
+       ext2_extent     extent;
+       errcode_t       retval;
+       
+       retval = ext2fs_get_mem(sizeof(struct _ext2_extent),
+                               (void **) &extent);
+       if (retval)
+               return retval;
+       memset(extent, 0, sizeof(struct _ext2_extent));
+
+       extent->size = size ? size : 50;
+       extent->cursor = 0;
+       extent->num = 0;
+       extent->sorted = 1;
+
+       retval = ext2fs_get_mem(sizeof(struct ext2_extent_entry) *
+                               extent->size, (void **) &extent->list);
+       if (retval) {
+               free(extent);
+               return retval;
        }
-       memset(new->list, 0, sizeof(struct ext2_extent_entry) * new->size);
-       *ret_extent = new;
+       memset(extent->list, 0,
+              sizeof(struct ext2_extent_entry) * extent->size);
+       *ret_extent = extent;
        return 0;
 }
 
@@ -60,30 +64,29 @@ errcode_t ext2fs_create_extent_table(ext2_extent *ret_extent, int size)
 void ext2fs_free_extent_table(ext2_extent extent)
 {
        if (extent->list)
-               free(extent->list);
+               ext2fs_free_mem((void **) &extent->list);
        extent->list = 0;
        extent->size = 0;
        extent->num = 0;
-       free(extent);
+       ext2fs_free_mem((void **) &extent);
 }
 
 /*
  * Add an entry to the extent table
  */
-errcode_t ext2fs_add_extent_entry(ext2_extent extent, __u32 old, __u32 new)
+errcode_t ext2fs_add_extent_entry(ext2_extent extent, __u32 old_loc, __u32 new_loc)
 {
-       struct ext2_extent_entry *p;
-       int     newsize;
-       int     curr;
-       struct  ext2_extent_entry *ent;
+       struct  ext2_extent_entry       *ent;
+       errcode_t                       retval;
+       int                             newsize;
+       int                             curr;
 
        if (extent->num >= extent->size) {
                newsize = extent->size + 100;
-               p = realloc(extent->list,
-                           sizeof(struct ext2_extent_entry) * newsize);
-               if (!p)
-                       return ENOMEM;
-               extent->list = p;
+               retval = ext2fs_resize_mem(sizeof(struct ext2_extent_entry) * 
+                                          newsize, (void **) &extent->list);
+               if (retval)
+                       return retval;
                extent->size = newsize;
        }
        curr = extent->num;
@@ -94,20 +97,20 @@ errcode_t ext2fs_add_extent_entry(ext2_extent extent, __u32 old, __u32 new)
                 * extent
                 */
                ent--;
-               if ((ent->old + ent->size == old) &&
-                   (ent->new + ent->size == new)) {
+               if ((ent->old_loc + ent->size == old_loc) &&
+                   (ent->new_loc + ent->size == new_loc)) {
                        ent->size++;
                        return 0;
                }
                /*
                 * Now see if we're going to ruin the sorting
                 */
-               if (ent->old + ent->size > old)
+               if (ent->old_loc + ent->size > old_loc)
                        extent->sorted = 0;
                ent++;
        }
-       ent->old = old;
-       ent->new = new;
+       ent->old_loc = old_loc;
+       ent->new_loc = new_loc;
        ent->size = 1;
        extent->num++;
        return 0;
@@ -118,17 +121,20 @@ errcode_t ext2fs_add_extent_entry(ext2_extent extent, __u32 old, __u32 new)
  */
 static int extent_cmp(const void *a, const void *b)
 {
-       const struct ext2_extent_entry *db_a = a;
-       const struct ext2_extent_entry *db_b = b;
+       const struct ext2_extent_entry *db_a;
+       const struct ext2_extent_entry *db_b;
+       
+       db_a = (struct ext2_extent_entry *) a;
+       db_b = (struct ext2_extent_entry *) b;
        
-       return (db_a->old - db_b->old);
+       return (db_a->old_loc - db_b->old_loc);
 }      
 
 /*
  * Given an inode map and inode number, look up the old inode number
- * and return the new inode number
+ * and return the new inode number.
  */
-__u32 ext2fs_extent_translate(ext2_extent extent, __u32 old)
+__u32 ext2fs_extent_translate(ext2_extent extent, __u32 old_loc)
 {
        int     low, high, mid;
        ino_t   lowval, highval;
@@ -149,24 +155,24 @@ __u32 ext2fs_extent_translate(ext2_extent extent, __u32 old)
                        mid = low;
                else {
                        /* Interpolate for efficiency */
-                       lowval = extent->list[low].old;
-                       highval = extent->list[high].old;
+                       lowval = extent->list[low].old_loc;
+                       highval = extent->list[high].old_loc;
 
-                       if (old < lowval)
+                       if (old_loc < lowval)
                                range = 0;
-                       else if (old > highval)
+                       else if (old_loc > highval)
                                range = 1;
                        else 
-                               range = ((float) (old - lowval)) /
+                               range = ((float) (old_loc - lowval)) /
                                        (highval - lowval);
                        mid = low + ((int) (range * (high-low)));
                }
 #endif
-               if ((old >= extent->list[mid].old) &&
-                   (old < extent->list[mid].old + extent->list[mid].size))
-                       return (extent->list[mid].new +
-                               (old - extent->list[mid].old));
-               if (old < extent->list[mid].old)
+               if ((old_loc >= extent->list[mid].old_loc) &&
+                   (old_loc < extent->list[mid].old_loc + extent->list[mid].size))
+                       return (extent->list[mid].new_loc +
+                               (old_loc - extent->list[mid].old_loc));
+               if (old_loc < extent->list[mid].old_loc)
                        high = mid-1;
                else
                        low = mid+1;
@@ -186,35 +192,35 @@ void ext2fs_extent_dump(ext2_extent extent, FILE *out)
        fprintf(out, "#\tNum=%d, Size=%d, Cursor=%d, Sorted=%d\n",
               extent->num, extent->size, extent->cursor, extent->sorted);
        for (i=0, ent=extent->list; i < extent->num; i++, ent++) {
-               fprintf(out, "#\t\t %u -> %u (%d)\n", ent->old,
-                       ent->new, ent->size);
+               fprintf(out, "#\t\t %u -> %u (%d)\n", ent->old_loc,
+                       ent->new_loc, ent->size);
        }
 }
 
 /*
  * Iterate over the contents of the extent table
  */
-errcode_t ext2fs_iterate_extent(ext2_extent extent, __u32 *old,
-                               __u32 *new, int *size)
+errcode_t ext2fs_iterate_extent(ext2_extent extent, __u32 *old_loc,
+                               __u32 *new_loc, int *size)
 {
        struct ext2_extent_entry *ent;
        
-       if (!old) {
+       if (!old_loc) {
                extent->cursor = 0;
                return 0;
        }
 
        if (extent->cursor >= extent->num) {
-               *old = 0;
-               *new = 0;
+               *old_loc = 0;
+               *new_loc = 0;
                *size = 0;
                return 0;
        }
 
        ent = extent->list + extent->cursor++;
 
-       *old = ent->old;
-       *new = ent->new;
+       *old_loc = ent->old_loc;
+       *new_loc = ent->new_loc;
        *size = ent->size;
        return 0;
 }
index 1345708da71bae4474f4f961c6b64c005abf7d0b..7bb0382b2131d28ca57b82febb664d7fcd833282 100644 (file)
@@ -34,7 +34,6 @@ static errcode_t adjust_superblock(ext2_resize_t rfs, blk_t new_size)
        ino_t           real_end;
        blk_t           blk, group_block;
        unsigned long   i, j;
-       struct ext2_group_desc *new;
        int             old_numblocks, numblocks, adjblocks;
        ext2_sim_progmeter progress = 0;
        
@@ -124,11 +123,10 @@ retry:
         * Reallocate the group descriptors as necessary.
         */
        if (rfs->old_fs->desc_blocks != fs->desc_blocks) {
-               new = realloc(fs->group_desc,
-                             fs->desc_blocks * fs->blocksize);
-               if (!new)
-                       return ENOMEM;
-               fs->group_desc = new;
+               retval = ext2fs_resize_mem(fs->desc_blocks * fs->blocksize,
+                                          (void **) &fs->group_desc);
+               if (retval)
+                       return retval;
        }
 
        /*
@@ -161,11 +159,11 @@ retry:
                retval = 0;
                goto errout;
        }
-       rfs->itable_buf = malloc(fs->blocksize * fs->inode_blocks_per_group);
-       if (!rfs->itable_buf) {
-               retval = ENOMEM;
+       retval = ext2fs_get_mem(fs->blocksize * fs->inode_blocks_per_group,
+                               (void **) &rfs->itable_buf);
+       if (retval)
                goto errout;
-       }
+
        memset(rfs->itable_buf, 0, fs->blocksize * fs->inode_blocks_per_group);
        group_block = fs->super->s_first_data_block +
                rfs->old_fs->group_desc_count * fs->super->s_blocks_per_group;
@@ -534,7 +532,7 @@ static errcode_t move_itables(ext2_resize_t rfs)
        int             i, n, num, max, size, diff;
        ext2_filsys     fs = rfs->new_fs;
        char            *cp;
-       blk_t           old, new;
+       blk_t           old_blk, new_blk;
        errcode_t       retval, err;
        ext2_sim_progmeter progress = 0;
        int             to_move, moved;
@@ -545,9 +543,9 @@ static errcode_t move_itables(ext2_resize_t rfs)
 
        size = fs->blocksize * fs->inode_blocks_per_group;
        if (!rfs->itable_buf) {
-               rfs->itable_buf = malloc(size);
-               if (!rfs->itable_buf)
-                       return ENOMEM;
+               retval = ext2fs_get_mem(size, (void **) &rfs->itable_buf);
+               if (retval)
+                       return retval;
        }
 
        /*
@@ -570,21 +568,21 @@ static errcode_t move_itables(ext2_resize_t rfs)
        }
        
        for (i=0; i < max; i++) {
-               old = rfs->old_fs->group_desc[i].bg_inode_table;
-               new = fs->group_desc[i].bg_inode_table;
-               diff = new - old;
+               old_blk = rfs->old_fs->group_desc[i].bg_inode_table;
+               new_blk = fs->group_desc[i].bg_inode_table;
+               diff = new_blk - old_blk;
                
 #ifdef RESIZE2FS_DEBUG
                if (rfs->flags & RESIZE_DEBUG_ITABLEMOVE) 
                        printf("Itable move group %d block "
                               "%u->%u (diff %d)\n", 
-                              i, old, new, diff);
+                              i, old_blk, new_blk, diff);
 #endif
                
                if (!diff)
                        continue;
 
-               retval = io_channel_read_blk(fs->io, old,
+               retval = io_channel_read_blk(fs->io, old_blk,
                                             fs->inode_blocks_per_group,
                                             rfs->itable_buf);
                if (retval) 
@@ -606,16 +604,16 @@ static errcode_t move_itables(ext2_resize_t rfs)
                if (n > diff)
                        num -= n;
 
-               retval = io_channel_write_blk(fs->io, new,
+               retval = io_channel_write_blk(fs->io, new_blk,
                                              num, rfs->itable_buf);
                if (retval) {
-                       io_channel_write_blk(fs->io, old,
+                       io_channel_write_blk(fs->io, old_blk,
                                             num, rfs->itable_buf);
                        goto backout;
                }
                if (n > diff) {
                        retval = io_channel_write_blk(fs->io,
-                             old + fs->inode_blocks_per_group,
+                             old_blk + fs->inode_blocks_per_group,
                              diff, rfs->itable_buf - fs->blocksize * diff);
                        if (retval)
                                goto backout;
@@ -644,17 +642,17 @@ backout:
        while (--i >= 0) {
 #ifdef RESIZE2FS_DEBUG
                if (rfs->flags & RESIZE_DEBUG_ITABLEMOVE) 
-                       printf("Group %d block %u->%u\n", i, new, old);
+                       printf("Group %d block %u->%u\n", i, new_blk, old_blk);
 #endif
-               old = rfs->old_fs->group_desc[i].bg_inode_table;
-               new = fs->group_desc[i].bg_inode_table;
+               old_blk = rfs->old_fs->group_desc[i].bg_inode_table;
+               new_blk = fs->group_desc[i].bg_inode_table;
                
-               err = io_channel_read_blk(fs->io, new,
+               err = io_channel_read_blk(fs->io, new_blk,
                                          fs->inode_blocks_per_group,
                                          rfs->itable_buf);
                if (err)
                        continue;
-               err = io_channel_write_blk(fs->io, old,
+               err = io_channel_write_blk(fs->io, old_blk,
                                           fs->inode_blocks_per_group,
                                           rfs->itable_buf);
        }
@@ -736,9 +734,10 @@ errcode_t resize_fs(ext2_filsys fs, blk_t new_size, int flags)
        /*
         * Create the data structure
         */
-       rfs = malloc(sizeof(struct ext2_resize_struct));
-       if (!rfs)
-               return ENOMEM;
+       retval = ext2fs_get_mem(sizeof(struct ext2_resize_struct),
+                               (void **) &rfs);
+       if (retval)
+               return retval;
        memset(rfs, 0, sizeof(struct ext2_resize_struct));
 
        rfs->old_fs = fs;
@@ -788,8 +787,8 @@ errcode_t resize_fs(ext2_filsys fs, blk_t new_size, int flags)
        
        ext2fs_free(rfs->old_fs);
        if (rfs->itable_buf)
-               free(rfs->itable_buf);
-       free(rfs);
+               ext2fs_free_mem((void **) &rfs->itable_buf);
+       ext2fs_free_mem((void **) &rfs);
        
        return 0;
 
@@ -797,7 +796,7 @@ errout:
        if (rfs->new_fs)
                ext2fs_free(rfs->new_fs);
        if (rfs->itable_buf)
-               free(rfs->itable_buf);
-       free(rfs);
+               ext2fs_free_mem((void **) &rfs->itable_buf);
+       ext2fs_free_mem((void **) &rfs);
        return retval;
 }
index 3cf21b95940802f8f17016bc616b64a5939731b8..ed133ec9d6c76e1e820a798695cd40f0902f0cdf 100644 (file)
 #ifdef HAVE_LINUX_FS_H
 #include <linux/fs.h>
 #endif
-#include <linux/ext2_fs.h>
 
+#if EXT2_FLAT_INCLUDES
+#include "ext2_fs.h"
+#include "ext2fs.h"
+#else
+#include <linux/ext2_fs.h>
 #include "ext2fs/ext2fs.h"
+#endif
+
 
 /*
  * For the extent map
@@ -76,11 +82,11 @@ extern errcode_t ext2fs_create_extent_table(ext2_extent *ret_extent,
                                            int size);
 extern void ext2fs_free_extent_table(ext2_extent extent);
 extern errcode_t ext2fs_add_extent_entry(ext2_extent extent,
-                                        __u32 old, __u32 new);
-extern __u32 ext2fs_extent_translate(ext2_extent extent, __u32 old);
+                                        __u32 old_loc, __u32 new_loc);
+extern __u32 ext2fs_extent_translate(ext2_extent extent, __u32 old_loc);
 extern void ext2fs_extent_dump(ext2_extent extent, FILE *out);
-extern errcode_t ext2fs_iterate_extent(ext2_extent extent, __u32 *old,
-                                      __u32 *new, int *size);
+extern errcode_t ext2fs_iterate_extent(ext2_extent extent, __u32 *old_loc,
+                                      __u32 *new_loc, int *size);
 
 /* sim_progress.c */
 extern errcode_t ext2fs_progress_init(ext2_sim_progmeter *ret_prog,
index 1e30d11667ed921782ccd29726a39c884dabf615..850c860b39e3a2ab80c5ff3ccea118cf609bbb09 100644 (file)
@@ -69,17 +69,19 @@ errcode_t ext2fs_progress_init(ext2_sim_progmeter *ret_prog,
                               int labelwidth, int barwidth,
                               __u32 maxdone, int flags)
 {
-       ext2_sim_progmeter prog;
+       ext2_sim_progmeter      prog;
+       errcode_t               retval;
 
-       prog = malloc(sizeof(struct ext2_sim_progress));
+       retval = ext2fs_get_mem(sizeof(struct ext2_sim_progress),
+                               (void **) &prog);
        if (!prog)
-               return ENOMEM;
+               return retval;
        memset(prog, 0, sizeof(struct ext2_sim_progress));
 
-       prog->label = malloc(strlen(label)+1);
-       if (!prog->label) {
+       retval = ext2fs_get_mem(strlen(label)+1, (void **) &prog->label);
+       if (retval) {
                free(prog);
-               return ENOMEM;
+               return retval;
        }
        strcpy(prog->label, label);
        prog->labelwidth = labelwidth;
@@ -99,8 +101,8 @@ void ext2fs_progress_close(ext2_sim_progmeter prog)
 {
 
        if (prog->label)
-               free(prog->label);
-       free(prog);
+               ext2fs_free_mem((void **) &prog->label);
+       ext2fs_free_mem((void **) &prog);
        printf("\n");
        return;
 }