From owner-p4-projects@FreeBSD.ORG Wed Jun 10 16:09:21 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 2C6DB106567D; Wed, 10 Jun 2009 16:09:21 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C6348106567C for ; Wed, 10 Jun 2009 16:09:20 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id B33AC8FC14 for ; Wed, 10 Jun 2009 16:09:20 +0000 (UTC) (envelope-from truncs@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5AG9K5i096109 for ; Wed, 10 Jun 2009 16:09:20 GMT (envelope-from truncs@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5AG9KmD096107 for perforce@freebsd.org; Wed, 10 Jun 2009 16:09:20 GMT (envelope-from truncs@FreeBSD.org) Date: Wed, 10 Jun 2009 16:09:20 GMT Message-Id: <200906101609.n5AG9KmD096107@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to truncs@FreeBSD.org using -f From: Aditya Sarawgi To: Perforce Change Reviews Cc: Subject: PERFORCE change 164014 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Jun 2009 16:09:21 -0000 http://perforce.freebsd.org/chv.cgi?CH=164014 Change 164014 by truncs@aditya on 2009/06/10 16:09:08 Migration to new on disk superblock completed. Affected files ... .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_readwrite.c#5 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#7 edit .. //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/fs.h#5 edit Differences ... ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_readwrite.c#5 (text+ko) ==== @@ -242,7 +242,7 @@ */ flags |= B_CLRBUF; #if 0 - if (fs->s_frag_size > xfersize) + if (fs->e2fs_fsize > xfersize) flags |= B_CLRBUF; else flags &= ~B_CLRBUF; ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/ext2_vfsops.c#7 (text+ko) ==== @@ -108,10 +108,10 @@ VFS_SET(ext2fs_vfsops, ext2fs, 0); -static int ext2_check_sb_compat(struct ext2_super_block *es, struct cdev *dev, +static int ext2_check_sb_compat(struct ext2fs *es, struct cdev *dev, int ronly); static int compute_sb_data(struct vnode * devvp, - struct ext2_super_block * es, struct m_ext2fs * fs); + struct ext2fs * es, struct m_ext2fs * fs); static const char *ext2_opts[] = { "from", "export", "acls", "noexec", "noatime", "union", "suiddir", "multilabel", "nosymfollow", @@ -172,7 +172,7 @@ error = ext2_flushfiles(mp, flags, td); vfs_unbusy(mp); if (!error && fs->e2fs_wasvalid) { - fs->e2fs->s_state |= EXT2_VALID_FS; + fs->e2fs->e2fs_state |= EXT2_VALID_FS; ext2_sbupdate(ump, MNT_WAIT); } fs->e2fs_ronly = 1; @@ -214,11 +214,11 @@ if (error) return (error); - if ((fs->e2fs->s_state & EXT2_VALID_FS) == 0 || - (fs->e2fs->s_state & EXT2_ERROR_FS)) { + if ((fs->e2fs->e2fs_state & EXT2_VALID_FS) == 0 || + (fs->e2fs->e2fs_state & EXT2_ERROR_FS)) { if (mp->mnt_flag & MNT_FORCE) { printf( -"WARNING: %s was not properly "dismounted\n", fs->e2fs_fsmnt); +"WARNING: %s was not properly dismounted\n", fs->e2fs_fsmnt); } else { printf( "WARNING: R/W mount of %s denied. Filesystem is not clean - run fsck\n", @@ -226,7 +226,7 @@ return (EPERM); } } - fs->e2fs->s_state &= ~EXT2_VALID_FS; + fs->e2fs->e2fs_state &= ~EXT2_VALID_FS; ext2_sbupdate(ump, MNT_WAIT); fs->e2fs_ronly = 0; MNT_ILOCK(mp); @@ -307,7 +307,7 @@ ext2_check_descriptors(struct m_ext2fs *sb) { struct ext2_group_desc *gdp = NULL; - unsigned long block = sb->e2fs->s_first_data_block; + unsigned long block = sb->e2fs->e2fs_first_dblock; int desc_block = 0; int i; @@ -348,23 +348,23 @@ } static int -ext2_check_sb_compat(struct ext2_super_block *es, struct cdev *dev, int ronly) +ext2_check_sb_compat(struct ext2fs *es, struct cdev *dev, int ronly) { - if (es->s_magic != EXT2_SUPER_MAGIC) { + if (es->e2fs_magic != EXT2_SUPER_MAGIC) { printf("ext2fs: %s: wrong magic number %#x (expected %#x)\n", - devtoname(dev), es->s_magic, EXT2_SUPER_MAGIC); + devtoname(dev), es->e2fs_magic, EXT2_SUPER_MAGIC); return (1); } if (es->s_rev_level > EXT2_GOOD_OLD_REV) { - if (es->s_feature_incompat & ~EXT2_FEATURE_INCOMPAT_SUPP) { + if (es->e2fs_features_incompat & ~EXT2_FEATURE_INCOMPAT_SUPP) { printf( "WARNING: mount of %s denied due to unsupported optional features\n", devtoname(dev)); return (1); } if (!ronly && - (es->s_feature_ro_compat & ~EXT2_FEATURE_RO_COMPAT_SUPP)) { + (es->e2fs_features_rocompat & ~EXT2_FEATURE_RO_COMPAT_SUPP)) { printf("WARNING: R/W mount of %s denied due to " "unsupported optional features\n", devtoname(dev)); return (1); @@ -378,30 +378,30 @@ * data in the ext2_super_block structure read in. */ static int -compute_sb_data(struct vnode *devvp, struct ext2_super_block *es, +compute_sb_data(struct vnode *devvp, struct ext2fs *es, struct m_ext2fs *fs) { int db_count, error; int i, j; int logic_sb_block = 1; /* XXX for now */ - fs->e2fs_bsize = EXT2_MIN_BLOCK_SIZE << es->s_log_block_size; - fs->e2fs_bshift = EXT2_MIN_BLOCK_LOG_SIZE + es->s_log_block_size; - fs->e2fs_fsbtodb = es->s_log_block_size + 1; + fs->e2fs_bsize = EXT2_MIN_BLOCK_SIZE << es->e2fs_log_bsize; + fs->e2fs_bshift = EXT2_MIN_BLOCK_LOG_SIZE + es->e2fs_log_bsize; + fs->e2fs_fsbtodb = es->e2fs_log_bsize + 1; fs->e2fs_qbmask = fs->e2fs_bsize - 1; - fs->e2fs_blocksize_bits = es->s_log_block_size + 10; - fs->e2fs_fsize = EXT2_MIN_FRAG_SIZE << es->s_log_frag_size; + fs->e2fs_blocksize_bits = es->e2fs_log_bsize + 10; + fs->e2fs_fsize = EXT2_MIN_FRAG_SIZE << es->e2fs_log_fsize; if (fs->e2fs_fsize) fs->e2fs_fpb = fs->e2fs_bsize / fs->e2fs_fsize; - fs->e2fs_bpg = es->s_blocks_per_group; - fs->e2fs_fpg = es->s_frags_per_group; - fs->e2fs_ipg = es->s_inodes_per_group; - if (es->s_rev_level == EXT2_GOOD_OLD_REV) { + fs->e2fs_bpg = es->e2fs_bpg; + fs->e2fs_fpg = es->e2fs_fpg; + fs->e2fs_ipg = es->e2fs_ipg; + if (es->e2fs_rev == EXT2_GOOD_OLD_REV) { fs->e2fs_first_inode = EXT2_GOOD_OLD_FIRST_INO; fs->e2fs_isize = EXT2_GOOD_OLD_INODE_SIZE; } else { - fs->e2fs_first_inode = es->s_first_ino; - fs->e2fs_isize = es->s_inode_size; + fs->e2fs_first_inode = es->e2fs_first_ino; + fs->e2fs_isize = es->e2fs_inode_size; /* * Simple sanity check for superblock inode size value. @@ -418,7 +418,7 @@ fs->e2fs_itpg = fs->e2fs_ipg /fs->e2fs_ipb; fs->e2fs_descpb = fs->e2fs_bsize / sizeof (struct ext2_group_desc); /* s_resuid / s_resgid ? */ - fs->e2fs_gcount = (es->s_blocks_count - es->s_first_data_block + + fs->e2fs_gcount = (es->e2fs_bcount - es->e2fs_first_dblock + EXT2_BLOCKS_PER_GROUP(fs) - 1) / EXT2_BLOCKS_PER_GROUP(fs); db_count = (fs->e2fs_gcount + EXT2_DESC_PER_BLOCK(fs) - 1) / EXT2_DESC_PER_BLOCK(fs); @@ -464,7 +464,7 @@ fs->e2fs_lib = 0; fs->e2fs_lbb = 0; if (es->s_rev_level == EXT2_GOOD_OLD_REV || - (es->s_feature_ro_compat & EXT2_FEATURE_RO_COMPAT_LARGE_FILE) == 0) + (es->e2fs_features_rocompat & EXT2_FEATURE_RO_COMPAT_LARGE_FILE) == 0) fs->e2fs_maxfilesize = 0x7fffffff; else fs->e2fs_maxfilesize = 0x7fffffffffffffff; @@ -490,7 +490,7 @@ struct vnode *vp, *mvp, *devvp; struct inode *ip; struct buf *bp; - struct ext2_super_block *es; + struct ext2fs *es; struct m_ext2fs *fs; int error; @@ -511,13 +511,13 @@ */ if ((error = bread(devvp, SBLOCK, SBSIZE, NOCRED, &bp)) != 0) return (error); - es = (struct ext2_super_block *)bp->b_data; + es = (struct ext2fs *)bp->b_data; if (ext2_check_sb_compat(es, devvp->v_rdev, 0) != 0) { brelse(bp); return (EIO); /* XXX needs translation */ } fs = VFSTOEXT2(mp)->um_e2fs; - bcopy(bp->b_data, fs->e2fs, sizeof(struct ext2_super_block)); + bcopy(bp->b_data, fs->e2fs, sizeof(struct ext2fs)); if((error = compute_sb_data(devvp, es, fs)) != 0) { brelse(bp); @@ -621,13 +621,13 @@ ump = NULL; if ((error = bread(devvp, SBLOCK, SBSIZE, NOCRED, &bp)) != 0) goto out; - es = (struct ext2_super_block *)bp->b_data; + es = (struct ext2fs *)bp->b_data; if (ext2_check_sb_compat(es, dev, ronly) != 0) { error = EINVAL; /* XXX needs translation */ goto out; } - if ((es->s_state & EXT2_VALID_FS) == 0 || - (es->s_state & EXT2_ERROR_FS)) { + if ((es->e2fs_state & EXT2_VALID_FS) == 0 || + (es->e2fs_state & EXT2_ERROR_FS)) { if (ronly || (mp->mnt_flag & MNT_FORCE)) { printf( "WARNING: Filesystem was not properly dismounted\n"); @@ -648,9 +648,9 @@ */ ump->um_e2fs = malloc(sizeof(struct m_ext2fs), M_EXT2MNT, M_WAITOK); - ump->um_e2fs->e2fs = malloc(sizeof(struct ext2_super_block), + ump->um_e2fs->e2fs = malloc(sizeof(struct ext2fs), M_EXT2MNT, M_WAITOK); - bcopy(es, ump->um_e2fs->e2fs, (u_int)sizeof(struct ext2_super_block)); + bcopy(es, ump->um_e2fs->e2fs, (u_int)sizeof(struct ext2fs)); if ((error = compute_sb_data(devvp, ump->um_e2fs->e2fs, ump->um_e2fs))) goto out; @@ -667,10 +667,10 @@ * If the fs is not mounted read-only, make sure the super block is * always written back on a sync(). */ - fs->e2fs_wasvalid = fs->e2fs->s_state & EXT2_VALID_FS ? 1 : 0; + fs->e2fs_wasvalid = fs->e2fs->e2fs_state & EXT2_VALID_FS ? 1 : 0; if (ronly == 0) { fs->e2fs_fmod = 1; /* mark it modified */ - fs->e2fs->s_state &= ~EXT2_VALID_FS; /* set fs invalid */ + fs->e2fs->e2fs_state &= ~EXT2_VALID_FS; /* set fs invalid */ } mp->mnt_data = ump; mp->mnt_stat.f_fsid.val[0] = dev2udev(dev); @@ -690,7 +690,7 @@ * ufs_bmap w/o changse! */ ump->um_nindir = EXT2_ADDR_PER_BLOCK(fs); - ump->um_bptrtodb = fs->e2fs->s_log_block_size + 1; + ump->um_bptrtodb = fs->e2fs->e2fs_log_bsize + 1; ump->um_seqinc = EXT2_FRAGS_PER_BLOCK(fs); if (ronly == 0) ext2_sbupdate(ump, MNT_WAIT); @@ -737,7 +737,7 @@ ronly = fs->e2fs_ronly; if (ronly == 0) { if (fs->e2fs_wasvalid) - fs->e2fs->s_state |= EXT2_VALID_FS; + fs->e2fs->e2fs_state |= EXT2_VALID_FS; ext2_sbupdate(ump, MNT_WAIT); } @@ -791,7 +791,7 @@ { struct ext2mount *ump; struct m_ext2fs *fs; - struct ext2_super_block *es; + struct ext2fs *es; unsigned long overhead; int i, nsb; @@ -799,20 +799,20 @@ fs = ump->um_e2fs; es = fs->e2fs; - if (es->s_magic != EXT2_SUPER_MAGIC) + if (es->e2fs_magic != EXT2_SUPER_MAGIC) panic("ext2_statfs - magic number spoiled"); /* * Compute the overhead (FS structures) */ - if (es->s_feature_ro_compat & EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER) { + if (es->e2fs_features_rocompat & EXT2_FEATURE_RO_COMPAT_SPARSE_SUPER) { nsb = 0; for (i = 0 ; i < fs->e2fs_gcount; i++) if (ext2_group_sparse(i)) nsb++; } else nsb = fs->e2fs_gcount; - overhead = es->s_first_data_block + + overhead = es->e2fs_first_dblock + /* Superblocks and block group descriptors: */ nsb * (1 + fs->e2fs_gdbcount) + /* Inode bitmap, block bitmap, and inode table: */ @@ -820,11 +820,11 @@ sbp->f_bsize = EXT2_FRAG_SIZE(fs); sbp->f_iosize = EXT2_BLOCK_SIZE(fs); - sbp->f_blocks = es->s_blocks_count - overhead; - sbp->f_bfree = es->s_free_blocks_count; - sbp->f_bavail = sbp->f_bfree - es->s_r_blocks_count; - sbp->f_files = es->s_inodes_count; - sbp->f_ffree = es->s_free_inodes_count; + sbp->f_blocks = es->e2fs_bcount - overhead; + sbp->f_bfree = es->e2fs_fbcount; + sbp->f_bavail = sbp->f_bfree - es->e2fs_rbcount; + sbp->f_files = es->e2fs_icount; + sbp->f_ffree = es->e2fs_ficount; return (0); } @@ -905,7 +905,7 @@ */ if (fs->e2fs_fmod != 0) { fs->e2fs_fmod = 0; - fs->e2fs->s_wtime = time_second; + fs->e2fs->e2fs_wtime = time_second; if ((error = ext2_sbupdate(ump, waitfor)) != 0) allerror = error; } @@ -1058,7 +1058,7 @@ ufhp = (struct ufid *)fhp; fs = VFSTOEXT2(mp)->um_e2fs; if (ufhp->ufid_ino < ROOTINO || - ufhp->ufid_ino > fs->e2fs_gcount * fs->e2fs->s_inodes_per_group) + ufhp->ufid_ino > fs->e2fs_gcount * fs->e2fs->e2fs_ipg) return (ESTALE); error = VFS_VGET(mp, ufhp->ufid_ino, LK_EXCLUSIVE, &nvp); @@ -1085,12 +1085,12 @@ ext2_sbupdate(struct ext2mount *mp, int waitfor) { struct m_ext2fs *fs = mp->um_e2fs; - struct ext2_super_block *es = fs->e2fs; + struct ext2fs *es = fs->e2fs; struct buf *bp; int error = 0; bp = getblk(mp->um_devvp, SBLOCK, SBSIZE, 0, 0, 0); - bcopy((caddr_t)es, bp->b_data, (u_int)sizeof(struct ext2_super_block)); + bcopy((caddr_t)es, bp->b_data, (u_int)sizeof(struct ext2fs)); if (waitfor == MNT_WAIT) error = bwrite(bp); else ==== //depot/projects/soc2009/soc_ext2fs/src/sys/gnu/fs/ext2fs/fs.h#5 (text+ko) ==== @@ -93,9 +93,9 @@ * Give cylinder group number for a file system block. * Give cylinder group block number for a file system block. */ -#define dtog(fs, d) (((d) - fs->e2fs->s_first_data_block) / \ +#define dtog(fs, d) (((d) - fs->e2fs->e2fs_first_dblock) / \ EXT2_BLOCKS_PER_GROUP(fs)) -#define dtogd(fs, d) (((d) - fs->e2fs->s_first_data_block) % \ +#define dtogd(fs, d) (((d) - fs->e2fs->e2fs_first_dblock) % \ EXT2_BLOCKS_PER_GROUP(fs)) /*