diff options
author | Robert Yang <liezhi.yang@windriver.com> | 2014-03-20 17:37:41 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-03-21 12:05:28 +0000 |
commit | ff5666bc460520aef6105e117d5431c05fd9f55b (patch) | |
tree | 56d2cde6609aa3c97d5247eda073b8a7a059f36f /meta/recipes-devtools/genext2fs/genext2fs-1.4.1/0005-Make-filesystem-struct-not-an-overloay.patch | |
parent | 45779941cec4f53a8ca7f8350402e5d9e866c916 (diff) | |
download | openembedded-core-contrib-ff5666bc460520aef6105e117d5431c05fd9f55b.tar.gz |
genext2fs: remove it
Remove genext2fs since we don't use it anymore, it can't support
ext4 well, either. We have used "mke2fs -d" to instead of it.
[YOCTO #6013]
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/genext2fs/genext2fs-1.4.1/0005-Make-filesystem-struct-not-an-overloay.patch')
-rw-r--r-- | meta/recipes-devtools/genext2fs/genext2fs-1.4.1/0005-Make-filesystem-struct-not-an-overloay.patch | 374 |
1 files changed, 0 insertions, 374 deletions
diff --git a/meta/recipes-devtools/genext2fs/genext2fs-1.4.1/0005-Make-filesystem-struct-not-an-overloay.patch b/meta/recipes-devtools/genext2fs/genext2fs-1.4.1/0005-Make-filesystem-struct-not-an-overloay.patch deleted file mode 100644 index ccc33feaac..0000000000 --- a/meta/recipes-devtools/genext2fs/genext2fs-1.4.1/0005-Make-filesystem-struct-not-an-overloay.patch +++ /dev/null @@ -1,374 +0,0 @@ -Upstream-Status: inappropriate - -From f2090608aef32f3012b1c5943b73314176bce832 Mon Sep 17 00:00:00 2001 -From: Corey Minyard <cminyard@mvista.com> -Date: Sun, 5 Jun 2011 10:09:51 -0500 -Subject: [PATCH 05/19] Make filesystem struct not an overloay - -Having the filesystem structure just be a big overlay for the raw data -means you can't easily carry along any useful metadata in it. So -modify the filesystem structure to not be an overlay, but allocate the -data and various pieces to be components inside the structure. ---- - genext2fs.c | 150 +++++++++++++++++++++++++++++++++-------------------------- - 1 files changed, 84 insertions(+), 66 deletions(-) - -diff --git a/genext2fs.c b/genext2fs.c -index 03d1b27..46c9605 100644 ---- a/genext2fs.c -+++ b/genext2fs.c -@@ -233,8 +233,8 @@ struct stats { - - // Number of groups in the filesystem - #define GRP_NBGROUPS(fs) \ -- (((fs)->sb.s_blocks_count - fs->sb.s_first_data_block + \ -- (fs)->sb.s_blocks_per_group - 1) / (fs)->sb.s_blocks_per_group) -+ (((fs)->sb->s_blocks_count - fs->sb->s_first_data_block + \ -+ (fs)->sb->s_blocks_per_group - 1) / (fs)->sb->s_blocks_per_group) - - // Get/put group block bitmap (bbm) given the group number - #define GRP_GET_GROUP_BBM(fs,grp,bi) ( get_blk((fs),(fs)->gd[(grp)].bg_block_bitmap,(bi)) ) -@@ -245,7 +245,7 @@ struct stats { - #define GRP_PUT_GROUP_IBM(bi) ( put_blk((bi)) ) - - // Given an inode number find the group it belongs to --#define GRP_GROUP_OF_INODE(fs,nod) ( ((nod)-1) / (fs)->sb.s_inodes_per_group) -+#define GRP_GROUP_OF_INODE(fs,nod) ( ((nod)-1) / (fs)->sb->s_inodes_per_group) - - //Given an inode number get/put the inode bitmap that covers it - #define GRP_GET_INODE_BITMAP(fs,nod,bi) \ -@@ -255,10 +255,10 @@ struct stats { - - //Given an inode number find its offset within the inode bitmap that covers it - #define GRP_IBM_OFFSET(fs,nod) \ -- ( (nod) - GRP_GROUP_OF_INODE((fs),(nod))*(fs)->sb.s_inodes_per_group ) -+ ( (nod) - GRP_GROUP_OF_INODE((fs),(nod))*(fs)->sb->s_inodes_per_group ) - - // Given a block number find the group it belongs to --#define GRP_GROUP_OF_BLOCK(fs,blk) ( ((blk)-1) / (fs)->sb.s_blocks_per_group) -+#define GRP_GROUP_OF_BLOCK(fs,blk) ( ((blk)-1) / (fs)->sb->s_blocks_per_group) - - //Given a block number get/put the block bitmap that covers it - #define GRP_GET_BLOCK_BITMAP(fs,blk,bi) \ -@@ -268,7 +268,7 @@ struct stats { - - //Given a block number find its offset within the block bitmap that covers it - #define GRP_BBM_OFFSET(fs,blk) \ -- ( (blk) - GRP_GROUP_OF_BLOCK((fs),(blk))*(fs)->sb.s_blocks_per_group ) -+ ( (blk) - GRP_GROUP_OF_BLOCK((fs),(blk))*(fs)->sb->s_blocks_per_group ) - - - // used types -@@ -577,9 +577,10 @@ typedef struct - #if BLOCKSIZE == 1024 - typedef struct - { -- block zero; // The famous block 0 -- superblock sb; // The superblock -- groupdescriptor gd[0]; // The group descriptors -+ uint8 *data; -+ superblock *sb; -+ groupdescriptor *gd; -+ uint32 nheadblocks; - } filesystem; - #else - #error UNHANDLED BLOCKSIZE -@@ -830,7 +831,7 @@ typedef struct - static inline uint8 * - get_blk(filesystem *fs, uint32 blk, blk_info **rbi) - { -- return (uint8*)fs + blk*BLOCKSIZE; -+ return fs->data + blk*BLOCKSIZE; - } - - static inline void -@@ -1079,9 +1080,9 @@ alloc_blk(filesystem *fs, uint32 nod) - error_msg_and_die("couldn't allocate a block (no free space)"); - if(!(fs->gd[grp].bg_free_blocks_count--)) - error_msg_and_die("group descr %d. free blocks count == 0 (corrupted fs?)",grp); -- if(!(fs->sb.s_free_blocks_count--)) -+ if(!(fs->sb->s_free_blocks_count--)) - error_msg_and_die("superblock free blocks count == 0 (corrupted fs?)"); -- return fs->sb.s_blocks_per_group*grp + bk; -+ return fs->sb->s_blocks_per_group*grp + bk; - } - - // free a block -@@ -1091,12 +1092,12 @@ free_blk(filesystem *fs, uint32 bk) - uint32 grp; - blk_info *bi; - -- grp = bk / fs->sb.s_blocks_per_group; -- bk %= fs->sb.s_blocks_per_group; -+ grp = bk / fs->sb->s_blocks_per_group; -+ bk %= fs->sb->s_blocks_per_group; - deallocate(get_blk(fs, fs->gd[grp].bg_block_bitmap, &bi), bk); - put_blk(bi); - fs->gd[grp].bg_free_blocks_count++; -- fs->sb.s_free_blocks_count++; -+ fs->sb->s_free_blocks_count++; - } - - // allocate an inode -@@ -1114,7 +1115,7 @@ alloc_nod(filesystem *fs) - /* find the one with the most free blocks and allocate node there */ - /* Idea from find_group_dir in fs/ext2/ialloc.c in 2.4.19 kernel */ - /* We do it for all inodes. */ -- avefreei = fs->sb.s_free_inodes_count / nbgroups; -+ avefreei = fs->sb->s_free_inodes_count / nbgroups; - for(grp=0; grp<nbgroups; grp++) { - if (fs->gd[grp].bg_free_inodes_count < avefreei || - fs->gd[grp].bg_free_inodes_count == 0) -@@ -1129,9 +1130,9 @@ alloc_nod(filesystem *fs) - put_blk(bi); - if(!(fs->gd[best_group].bg_free_inodes_count--)) - error_msg_and_die("group descr. free blocks count == 0 (corrupted fs?)"); -- if(!(fs->sb.s_free_inodes_count--)) -+ if(!(fs->sb->s_free_inodes_count--)) - error_msg_and_die("superblock free blocks count == 0 (corrupted fs?)"); -- return fs->sb.s_inodes_per_group*best_group+nod; -+ return fs->sb->s_inodes_per_group*best_group+nod; - } - - // print a bitmap allocation -@@ -1451,7 +1452,7 @@ extend_blk(filesystem *fs, uint32 nod, block b, int amount) - while(create) - { - int i, copyb = 0; -- if(!(fs->sb.s_reserved[200] & OP_HOLES)) -+ if(!(fs->sb->s_reserved[200] & OP_HOLES)) - copyb = 1; - else - for(i = 0; i < BLOCKSIZE / 4; i++) -@@ -2133,7 +2134,7 @@ swap_goodfs(filesystem *fs) - uint32 i; - nod_info *ni; - -- for(i = 1; i < fs->sb.s_inodes_count; i++) -+ for(i = 1; i < fs->sb->s_inodes_count; i++) - { - inode *nod = get_nod(fs, i, &ni); - if(nod->i_mode & FM_IFDIR) -@@ -2158,17 +2159,17 @@ swap_goodfs(filesystem *fs) - } - for(i=0;i<GRP_NBGROUPS(fs);i++) - swap_gd(&(fs->gd[i])); -- swap_sb(&fs->sb); -+ swap_sb(fs->sb); - } - - static void - swap_badfs(filesystem *fs) - { - uint32 i; -- swap_sb(&fs->sb); -+ swap_sb(fs->sb); - for(i=0;i<GRP_NBGROUPS(fs);i++) - swap_gd(&(fs->gd[i])); -- for(i = 1; i < fs->sb.s_inodes_count; i++) -+ for(i = 1; i < fs->sb->s_inodes_count; i++) - { - nod_info *ni; - inode *nod = get_nod(fs, i, &ni); -@@ -2242,24 +2243,32 @@ init_fs(int nbblocks, int nbinodes, int nbresrvd, int holes, uint32 fs_timestamp - free_blocks = nbblocks - overhead_per_group*nbgroups - 1 /*boot block*/; - free_blocks_per_group = nbblocks_per_group - overhead_per_group; - -- if(!(fs = (filesystem*)calloc(nbblocks, BLOCKSIZE))) -+ fs = malloc(sizeof(*fs)); -+ if (!fs) - error_msg_and_die("not enough memory for filesystem"); -+ fs->nheadblocks = (((nbgroups * sizeof(groupdescriptor)) -+ + sizeof(superblock) + (BLOCKSIZE - 1)) -+ / BLOCKSIZE); -+ if(!(fs->data = calloc(nbblocks, BLOCKSIZE))) -+ error_msg_and_die("not enough memory for filesystem"); -+ fs->sb = (superblock *) (fs->data + BLOCKSIZE); -+ fs->gd = (groupdescriptor *) (fs->sb + 1); - - // create the superblock for an empty filesystem -- fs->sb.s_inodes_count = nbinodes_per_group * nbgroups; -- fs->sb.s_blocks_count = nbblocks; -- fs->sb.s_r_blocks_count = nbresrvd; -- fs->sb.s_free_blocks_count = free_blocks; -- fs->sb.s_free_inodes_count = fs->sb.s_inodes_count - EXT2_FIRST_INO + 1; -- fs->sb.s_first_data_block = first_block; -- fs->sb.s_log_block_size = BLOCKSIZE >> 11; -- fs->sb.s_log_frag_size = BLOCKSIZE >> 11; -- fs->sb.s_blocks_per_group = nbblocks_per_group; -- fs->sb.s_frags_per_group = nbblocks_per_group; -- fs->sb.s_inodes_per_group = nbinodes_per_group; -- fs->sb.s_wtime = fs_timestamp; -- fs->sb.s_magic = EXT2_MAGIC_NUMBER; -- fs->sb.s_lastcheck = fs_timestamp; -+ fs->sb->s_inodes_count = nbinodes_per_group * nbgroups; -+ fs->sb->s_blocks_count = nbblocks; -+ fs->sb->s_r_blocks_count = nbresrvd; -+ fs->sb->s_free_blocks_count = free_blocks; -+ fs->sb->s_free_inodes_count = fs->sb->s_inodes_count - EXT2_FIRST_INO + 1; -+ fs->sb->s_first_data_block = first_block; -+ fs->sb->s_log_block_size = BLOCKSIZE >> 11; -+ fs->sb->s_log_frag_size = BLOCKSIZE >> 11; -+ fs->sb->s_blocks_per_group = nbblocks_per_group; -+ fs->sb->s_frags_per_group = nbblocks_per_group; -+ fs->sb->s_inodes_per_group = nbinodes_per_group; -+ fs->sb->s_wtime = fs_timestamp; -+ fs->sb->s_magic = EXT2_MAGIC_NUMBER; -+ fs->sb->s_lastcheck = fs_timestamp; - - // set up groupdescriptors - for(i=0, bbmpos=gdsz+2, ibmpos=bbmpos+1, itblpos=ibmpos+1; -@@ -2301,7 +2310,7 @@ init_fs(int nbblocks, int nbinodes, int nbresrvd, int holes, uint32 fs_timestamp - /* Inode bitmap */ - ibm = get_blk(fs,fs->gd[i].bg_inode_bitmap, &bi); - //non-filesystem inodes -- for(j = fs->sb.s_inodes_per_group+1; j <= BLOCKSIZE * 8; j++) -+ for(j = fs->sb->s_inodes_per_group+1; j <= BLOCKSIZE * 8; j++) - allocate(ibm, j); - - //system inodes -@@ -2332,7 +2341,7 @@ init_fs(int nbblocks, int nbinodes, int nbresrvd, int holes, uint32 fs_timestamp - put_dir(&dw); - - // make lost+found directory and reserve blocks -- if(fs->sb.s_r_blocks_count) -+ if(fs->sb->s_r_blocks_count) - { - inode *node; - uint8 *b; -@@ -2344,23 +2353,23 @@ init_fs(int nbblocks, int nbinodes, int nbresrvd, int holes, uint32 fs_timestamp - /* We run into problems with e2fsck if directory lost+found grows - * bigger than this. Need to find out why this happens - sundar - */ -- if (fs->sb.s_r_blocks_count > fs->sb.s_blocks_count * MAX_RESERVED_BLOCKS ) -- fs->sb.s_r_blocks_count = fs->sb.s_blocks_count * MAX_RESERVED_BLOCKS; -- for(i = 1; i < fs->sb.s_r_blocks_count; i++) -+ if (fs->sb->s_r_blocks_count > fs->sb->s_blocks_count * MAX_RESERVED_BLOCKS ) -+ fs->sb->s_r_blocks_count = fs->sb->s_blocks_count * MAX_RESERVED_BLOCKS; -+ for(i = 1; i < fs->sb->s_r_blocks_count; i++) - extend_blk(fs, nod, b, 1); - free_workblk(b); - node = get_nod(fs, nod, &ni); -- node->i_size = fs->sb.s_r_blocks_count * BLOCKSIZE; -+ node->i_size = fs->sb->s_r_blocks_count * BLOCKSIZE; - put_nod(ni); - } - - // administrative info -- fs->sb.s_state = 1; -- fs->sb.s_max_mnt_count = 20; -+ fs->sb->s_state = 1; -+ fs->sb->s_max_mnt_count = 20; - - // options for me - if(holes) -- fs->sb.s_reserved[200] |= OP_HOLES; -+ fs->sb->s_reserved[200] |= OP_HOLES; - - return fs; - } -@@ -2377,20 +2386,29 @@ load_fs(FILE * fh, int swapit) - fssize = (fssize + BLOCKSIZE - 1) / BLOCKSIZE; - if(fssize < 16) // totally arbitrary - error_msg_and_die("too small filesystem"); -- if(!(fs = (filesystem*)calloc(fssize, BLOCKSIZE))) -+ fs = malloc(sizeof(*fs)); -+ if (!fs) -+ error_msg_and_die("not enough memory for filesystem"); -+ if(!(fs->data = calloc(fssize, BLOCKSIZE))) - error_msg_and_die("not enough memory for filesystem"); -- if(fread(fs, BLOCKSIZE, fssize, fh) != fssize) -+ if(fread(fs->data, BLOCKSIZE, fssize, fh) != fssize) - perror_msg_and_die("input filesystem image"); -+ fs->sb = (superblock *) (fs->data + BLOCKSIZE); -+ fs->gd = (groupdescriptor *) (fs->sb + 1); - if(swapit) - swap_badfs(fs); -- if(fs->sb.s_rev_level || (fs->sb.s_magic != EXT2_MAGIC_NUMBER)) -+ if(fs->sb->s_rev_level || (fs->sb->s_magic != EXT2_MAGIC_NUMBER)) - error_msg_and_die("not a suitable ext2 filesystem"); -+ fs->nheadblocks = (((GRP_NBGROUPS(fs) * sizeof(groupdescriptor)) -+ + sizeof(superblock) + (BLOCKSIZE - 1)) -+ / BLOCKSIZE); - return fs; - } - - static void - free_fs(filesystem *fs) - { -+ free(fs->data); - free(fs); - } - -@@ -2645,19 +2663,19 @@ print_fs(filesystem *fs) - uint8 *ibm; - - printf("%d blocks (%d free, %d reserved), first data block: %d\n", -- fs->sb.s_blocks_count, fs->sb.s_free_blocks_count, -- fs->sb.s_r_blocks_count, fs->sb.s_first_data_block); -- printf("%d inodes (%d free)\n", fs->sb.s_inodes_count, -- fs->sb.s_free_inodes_count); -+ fs->sb->s_blocks_count, fs->sb->s_free_blocks_count, -+ fs->sb->s_r_blocks_count, fs->sb->s_first_data_block); -+ printf("%d inodes (%d free)\n", fs->sb->s_inodes_count, -+ fs->sb->s_free_inodes_count); - printf("block size = %d, frag size = %d\n", -- fs->sb.s_log_block_size ? (fs->sb.s_log_block_size << 11) : 1024, -- fs->sb.s_log_frag_size ? (fs->sb.s_log_frag_size << 11) : 1024); -+ fs->sb->s_log_block_size ? (fs->sb->s_log_block_size << 11) : 1024, -+ fs->sb->s_log_frag_size ? (fs->sb->s_log_frag_size << 11) : 1024); - printf("number of groups: %d\n",GRP_NBGROUPS(fs)); - printf("%d blocks per group,%d frags per group,%d inodes per group\n", -- fs->sb.s_blocks_per_group, fs->sb.s_frags_per_group, -- fs->sb.s_inodes_per_group); -+ fs->sb->s_blocks_per_group, fs->sb->s_frags_per_group, -+ fs->sb->s_inodes_per_group); - printf("Size of inode table: %d blocks\n", -- (int)(fs->sb.s_inodes_per_group * sizeof(inode) / BLOCKSIZE)); -+ (int)(fs->sb->s_inodes_per_group * sizeof(inode) / BLOCKSIZE)); - for (i = 0; i < GRP_NBGROUPS(fs); i++) { - printf("Group No: %d\n", i+1); - printf("block bitmap: block %d,inode bitmap: block %d, inode table: block %d\n", -@@ -2665,12 +2683,12 @@ print_fs(filesystem *fs) - fs->gd[i].bg_inode_table); - printf("block bitmap allocation:\n"); - print_bm(GRP_GET_GROUP_BBM(fs, i, &bi), -- fs->sb.s_blocks_per_group); -+ fs->sb->s_blocks_per_group); - GRP_PUT_GROUP_BBM(bi); - printf("inode bitmap allocation:\n"); - ibm = GRP_GET_GROUP_IBM(fs, i, &bi); -- print_bm(ibm, fs->sb.s_inodes_per_group); -- for (i = 1; i <= fs->sb.s_inodes_per_group; i++) -+ print_bm(ibm, fs->sb->s_inodes_per_group); -+ for (i = 1; i <= fs->sb->s_inodes_per_group; i++) - if (allocated(ibm, i)) - print_inode(fs, i); - GRP_PUT_GROUP_IBM(bi); -@@ -2680,11 +2698,11 @@ print_fs(filesystem *fs) - static void - dump_fs(filesystem *fs, FILE * fh, int swapit) - { -- uint32 nbblocks = fs->sb.s_blocks_count; -- fs->sb.s_reserved[200] = 0; -+ uint32 nbblocks = fs->sb->s_blocks_count; -+ fs->sb->s_reserved[200] = 0; - if(swapit) - swap_goodfs(fs); -- if(fwrite(fs, BLOCKSIZE, nbblocks, fh) < nbblocks) -+ if(fwrite(fs->data, BLOCKSIZE, nbblocks, fh) < nbblocks) - perror_msg_and_die("output filesystem image"); - if(swapit) - swap_badfs(fs); -@@ -2944,7 +2962,7 @@ main(int argc, char **argv) - - if(emptyval) { - uint32 b; -- for(b = 1; b < fs->sb.s_blocks_count; b++) { -+ for(b = 1; b < fs->sb->s_blocks_count; b++) { - blk_info *bi; - if(!allocated(GRP_GET_BLOCK_BITMAP(fs,b,&bi), - GRP_BBM_OFFSET(fs,b))) { --- -1.7.4.1 - |