Date: Thu, 4 Jun 2009 19:34:09 GMT From: Aditya Sarawgi <truncs@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 163514 for review Message-ID: <200906041934.n54JY9sD027348@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=163514 Change 163514 by truncs@aditya on 2009/06/04 19:33:17 Migration. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c#3 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_linux_ialloc.c#3 (text+ko) ==== @@ -79,28 +79,28 @@ unsigned int block_group, struct buffer_head ** bh) { - struct ext2_sb_info *sb = VFSTOEXT2(mp)->um_e2fs; + struct m_ext2fs *sb = VFSTOEXT2(mp)->um_e2fs; unsigned long group_desc; unsigned long desc; struct ext2_group_desc * gdp; - if (block_group >= sb->s_groups_count) + if (block_group >= sb->e2fs_gcount) panic ("get_group_desc: " "block_group >= groups_count - " "block_group = %d, groups_count = %lu", - block_group, sb->s_groups_count); + block_group, sb->e2fs_gcount); group_desc = block_group / EXT2_DESC_PER_BLOCK(sb); desc = block_group % EXT2_DESC_PER_BLOCK(sb); - if (!sb->s_group_desc[group_desc]) + if (!sb->e2fs_group_desc[group_desc]) panic ( "get_group_desc:" "Group descriptor not loaded - " "block_group = %d, group_desc = %lu, desc = %lu", block_group, group_desc, desc); gdp = (struct ext2_group_desc *) - sb->s_group_desc[group_desc]->b_data; + sb->e2fs_group_desc[group_desc]->b_data; if (bh) - *bh = sb->s_group_desc[group_desc]; + *bh = sb->e2fs_group_desc[group_desc]; return gdp + desc; } @@ -108,7 +108,7 @@ unsigned long block_group, unsigned int bitmap_nr) { - struct ext2_sb_info *sb = VFSTOEXT2(mp)->um_e2fs; + struct m_ext2fs *sb = VFSTOEXT2(mp)->um_e2fs; struct ext2_group_desc * gdp; struct buffer_head * bh; int error; @@ -116,14 +116,14 @@ gdp = get_group_desc (mp, block_group, NULL); if ((error = bread (VFSTOEXT2(mp)->um_devvp, fsbtodb(sb, gdp->bg_inode_bitmap), - sb->s_blocksize, + sb->e2fs_bsize, NOCRED, &bh)) != 0) panic ( "read_inode_bitmap:" "Cannot read inode bitmap - " "block_group = %lu, inode_bitmap = %lu", block_group, (unsigned long) gdp->bg_inode_bitmap); - sb->s_inode_bitmap_number[bitmap_nr] = block_group; - sb->s_inode_bitmap[bitmap_nr] = bh; + sb->e2fs_ibn[bitmap_nr] = block_group; + sb->e2fs_ib[bitmap_nr] = bh; LCK_BUF(bh) } @@ -141,22 +141,22 @@ static int load_inode_bitmap (struct mount * mp, unsigned int block_group) { - struct ext2_sb_info *sb = VFSTOEXT2(mp)->um_e2fs; + struct m_ext2fs *sb = VFSTOEXT2(mp)->um_e2fs; int i, j; unsigned long inode_bitmap_number; struct buffer_head * inode_bitmap; - if (block_group >= sb->s_groups_count) + if (block_group >= sb->e2fs_gcount) panic ("load_inode_bitmap:" "block_group >= groups_count - " "block_group = %d, groups_count = %lu", - block_group, sb->s_groups_count); - if (sb->s_loaded_inode_bitmaps > 0 && - sb->s_inode_bitmap_number[0] == block_group) + block_group, sb->e2fs_gcount); + if (sb->e2fs_lib > 0 && + sb->e2fs_ibn[0] == block_group) return 0; - if (sb->s_groups_count <= EXT2_MAX_GROUP_LOADED) { - if (sb->s_inode_bitmap[block_group]) { - if (sb->s_inode_bitmap_number[block_group] != + if (sb->e2fs_gcount <= EXT2_MAX_GROUP_LOADED) { + if (sb->e2fs_ib[block_group]) { + if (sb->e2fs_ibn[block_group] != block_group) panic ( "load_inode_bitmap:" "block_group != inode_bitmap_number"); @@ -168,32 +168,32 @@ } } - for (i = 0; i < sb->s_loaded_inode_bitmaps && - sb->s_inode_bitmap_number[i] != block_group; + for (i = 0; i < sb->e2fs_lib && + sb->e2fs_ibn[i] != block_group; i++) ; - if (i < sb->s_loaded_inode_bitmaps && - sb->s_inode_bitmap_number[i] == block_group) { - inode_bitmap_number = sb->s_inode_bitmap_number[i]; - inode_bitmap = sb->s_inode_bitmap[i]; + if (i < sb->e2fs_lib && + sb->e2fs_ibn[i] == block_group) { + inode_bitmap_number = sb->e2fs_ibn[i]; + inode_bitmap = sb->e2fs_ib[i]; for (j = i; j > 0; j--) { - sb->s_inode_bitmap_number[j] = - sb->s_inode_bitmap_number[j - 1]; - sb->s_inode_bitmap[j] = - sb->s_inode_bitmap[j - 1]; + sb->e2fs_ibn[j] = + sb->e2fs_ibn[j - 1]; + sb->e2fs_ib[j] = + sb->e2fs_ib[j - 1]; } - sb->s_inode_bitmap_number[0] = inode_bitmap_number; - sb->s_inode_bitmap[0] = inode_bitmap; + sb->e2fs_ibn[0] = inode_bitmap_number; + sb->e2fs_ib[0] = inode_bitmap; } else { - if (sb->s_loaded_inode_bitmaps < EXT2_MAX_GROUP_LOADED) - sb->s_loaded_inode_bitmaps++; + if (sb->e2fs_lib < EXT2_MAX_GROUP_LOADED) + sb->e2fs_lib++; else - ULCK_BUF(sb->s_inode_bitmap[EXT2_MAX_GROUP_LOADED - 1]) - for (j = sb->s_loaded_inode_bitmaps - 1; j > 0; j--) { - sb->s_inode_bitmap_number[j] = - sb->s_inode_bitmap_number[j - 1]; - sb->s_inode_bitmap[j] = - sb->s_inode_bitmap[j - 1]; + ULCK_BUF(sb->e2fs_ib[EXT2_MAX_GROUP_LOADED - 1]) + for (j = sb->e2fs_lib - 1; j > 0; j--) { + sb->e2fs_ibn[j] = + sb->e2fs_ibn[j - 1]; + sb->e2fs_ib[j] = + sb->e2fs_ib[j - 1]; } read_inode_bitmap (mp, block_group, 0); } @@ -203,7 +203,7 @@ void ext2_free_inode (struct inode * inode) { - struct ext2_sb_info * sb; + struct m_ext2fs * sb; struct buffer_head * bh; struct buffer_head * bh2; unsigned long block_group; @@ -226,16 +226,16 @@ sb = inode->i_e2fs; lock_super (DEVVP(inode)); if (inode->i_number < EXT2_FIRST_INO(sb) || - inode->i_number > sb->s_es->s_inodes_count) { + inode->i_number > sb->e2fs->s_inodes_count) { printf ("free_inode reserved inode or nonexistent inode"); unlock_super (DEVVP(inode)); return; } - es = sb->s_es; + es = sb->e2fs; block_group = (inode->i_number - 1) / EXT2_INODES_PER_GROUP(sb); bit = (inode->i_number - 1) % EXT2_INODES_PER_GROUP(sb); bitmap_nr = load_inode_bitmap (ITOV(inode)->v_mount, block_group); - bh = sb->s_inode_bitmap[bitmap_nr]; + bh = sb->e2fs_ib[bitmap_nr]; if (!clear_bit (bit, bh->b_data)) printf ( "ext2_free_inode:" "bit already cleared for inode %lu", @@ -255,7 +255,7 @@ wait_on_buffer (bh); } ***/ - sb->s_dirt = 1; + sb->e2fs_fmod = 1; unlock_super (DEVVP(inode)); } @@ -276,7 +276,7 @@ inode_block = gdp->bg_inode_table + (((inode->i_number - 1) % EXT2_INODES_PER_GROUP(inode->i_sb)) / EXT2_INODES_PER_BLOCK(inode->i_sb)); - bh = bread (inode->i_sb->s_dev, inode_block, inode->i_sb->s_blocksize); + bh = bread (inode->i_sb->s_dev, inode_block, inode->i_sb->e2fs_bsize); if (!bh) { printf ("inc_inode_version Cannot load inode table block - " "inode=%lu, inode_block=%lu\n", @@ -310,7 +310,7 @@ */ ino_t ext2_new_inode (const struct inode * dir, int mode) { - struct ext2_sb_info * sb; + struct m_ext2fs * sb; struct buffer_head * bh; struct buffer_head * bh2; int i, j, avefreei; @@ -324,16 +324,16 @@ sb = dir->i_e2fs; lock_super (DEVVP(dir)); - es = sb->s_es; + es = sb->e2fs; repeat: gdp = NULL; i=0; if (S_ISDIR(mode)) { avefreei = es->s_free_inodes_count / - sb->s_groups_count; + sb->e2fs_gcount; /* I am not yet convinced that this next bit is necessary. i = dir->u.ext2_i.i_block_group; - for (j = 0; j < sb->u.ext2_sb.s_groups_count; j++) { + for (j = 0; j < sb->u.ext2_sb.e2fs_gcount; j++) { tmp = get_group_desc (sb, i, &bh2); if ((tmp->bg_used_dirs_count << 8) < tmp->bg_free_inodes_count) { @@ -341,11 +341,11 @@ break; } else - i = ++i % sb->u.ext2_sb.s_groups_count; + i = ++i % sb->u.ext2_sb.e2fs_gcount; } */ if (!gdp) { - for (j = 0; j < sb->s_groups_count; j++) { + for (j = 0; j < sb->e2fs_gcount; j++) { tmp = get_group_desc(ITOV(dir)->v_mount,j,&bh2); if (tmp->bg_free_inodes_count && tmp->bg_free_inodes_count >= avefreei) { @@ -374,10 +374,10 @@ * Use a quadratic hash to find a group with a * free inode */ - for (j = 1; j < sb->s_groups_count; j <<= 1) { + for (j = 1; j < sb->e2fs_gcount; j <<= 1) { i += j; - if (i >= sb->s_groups_count) - i -= sb->s_groups_count; + if (i >= sb->e2fs_gcount) + i -= sb->e2fs_gcount; tmp = get_group_desc(ITOV(dir)->v_mount,i,&bh2); if (tmp->bg_free_inodes_count) { gdp = tmp; @@ -390,8 +390,8 @@ * That failed: try linear search for a free inode */ i = dir->i_block_group + 1; - for (j = 2; j < sb->s_groups_count; j++) { - if (++i >= sb->s_groups_count) + for (j = 2; j < sb->e2fs_gcount; j++) { + if (++i >= sb->e2fs_gcount) i = 0; tmp = get_group_desc(ITOV(dir)->v_mount,i,&bh2); if (tmp->bg_free_inodes_count) { @@ -407,7 +407,7 @@ return 0; } bitmap_nr = load_inode_bitmap (ITOV(dir)->v_mount, i); - bh = sb->s_inode_bitmap[bitmap_nr]; + bh = sb->e2fs_ib[bitmap_nr]; if ((j = find_first_zero_bit ((unsigned long *) bh->b_data, EXT2_INODES_PER_GROUP(sb))) < EXT2_INODES_PER_GROUP(sb)) { @@ -448,7 +448,7 @@ mark_buffer_dirty(bh2); es->s_free_inodes_count--; /* mark_buffer_dirty(sb->u.ext2_sb.s_sbh, 1); */ - sb->s_dirt = 1; + sb->e2fs_fmod = 1; unlock_super (DEVVP(dir)); return j; } @@ -457,7 +457,7 @@ static unsigned long ext2_count_free_inodes (struct mount * mp) { #ifdef EXT2FS_DEBUG - struct ext2_sb_info *sb = VFSTOEXT2(mp)->um_e2fs; + struct m_ext2fs *sb = VFSTOEXT2(mp)->um_e2fs; struct ext2_super_block * es; unsigned long desc_count, bitmap_count, x; int bitmap_nr; @@ -465,15 +465,15 @@ int i; lock_super (VFSTOEXT2(mp)->um_devvp); - es = sb->s_es; + es = sb->e2fs; desc_count = 0; bitmap_count = 0; gdp = NULL; - for (i = 0; i < sb->s_groups_count; i++) { + for (i = 0; i < sb->e2fs_gcount; i++) { gdp = get_group_desc (mp, i, NULL); desc_count += gdp->bg_free_inodes_count; bitmap_nr = load_inode_bitmap (mp, i); - x = ext2_count_free (sb->s_inode_bitmap[bitmap_nr], + x = ext2_count_free (sb->e2fs_ib[bitmap_nr], EXT2_INODES_PER_GROUP(sb) / 8); ext2_debug ("group %d: stored = %d, counted = %lu\n", i, gdp->bg_free_inodes_count, x); @@ -499,15 +499,15 @@ int i; lock_super (sb); - es = sb->u.ext2_sb.s_es; + es = sb->u.ext2_sb.e2fs; desc_count = 0; bitmap_count = 0; gdp = NULL; - for (i = 0; i < sb->u.ext2_sb.s_groups_count; i++) { + for (i = 0; i < sb->u.ext2_sb.e2fs_gcount; i++) { gdp = get_group_desc (sb, i, NULL); desc_count += gdp->bg_free_inodes_count; bitmap_nr = load_inode_bitmap (sb, i); - x = ext2_count_free (sb->u.ext2_sb.s_inode_bitmap[bitmap_nr], + x = ext2_count_free (sb->u.ext2_sb.e2fs_ib[bitmap_nr], EXT2_INODES_PER_GROUP(sb) / 8); if (gdp->bg_free_inodes_count != x) printf ( "ext2_check_inodes_bitmap:"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906041934.n54JY9sD027348>