Message ID | 20090203195645.GG20654@shell |
---|---|
State | Not Applicable, archived |
Headers | show |
On Feb 03, 2009 14:56 -0500, Valerie Aurora Henson wrote: > Possible solutions: > > Link libext2fs with libe2p > Open code 64-bit block counts > Require users of libe2p to link with libext2fs > Move ext2fs_blocks_count() and friends into a header file and inline them I would probably do the latter. The functions are small enough that inlining them is likely equivalent in terms of instructions compared to jumping to a new function. > diff --git a/lib/e2p/ls.c b/lib/e2p/ls.c > index 6d2ce70..1923793 100644 > --- a/lib/e2p/ls.c > +++ b/lib/e2p/ls.c > @@ -20,6 +20,7 @@ > #include <time.h> > > #include "e2p.h" > +#include "ext2fs/ext2fs.h" > > static void print_user (unsigned short uid, FILE *f) > { > @@ -219,9 +220,9 @@ void list_super2(struct ext2_super_block * sb, FILE *f) > fprintf(f, "Filesystem OS type: %s\n", str); > free(str); > fprintf(f, "Inode count: %u\n", sb->s_inodes_count); > - fprintf(f, "Block count: %u\n", sb->s_blocks_count); > - fprintf(f, "Reserved block count: %u\n", sb->s_r_blocks_count); > - fprintf(f, "Free blocks: %u\n", sb->s_free_blocks_count); > + fprintf(f, "Block count: %llu\n", ext2fs_blocks_count(sb)); > + fprintf(f, "Reserved block count: %llu\n", ext2fs_r_blocks_count(sb)); > + fprintf(f, "Free blocks: %llu\n", ext2fs_free_blocks_count(sb)); > fprintf(f, "Free inodes: %u\n", sb->s_free_inodes_count); > fprintf(f, "First block: %u\n", sb->s_first_data_block); > fprintf(f, "Block size: %u\n", EXT2_BLOCK_SIZE(sb)); > > -- > To unsubscribe from this list: send the line "unsubscribe linux-ext4" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html Cheers, Andreas -- Andreas Dilger Sr. Staff Engineer, Lustre Group Sun Microsystems of Canada, Inc. -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Feb 03, 2009 at 02:56:45PM -0500, Valerie Aurora Henson wrote: > Nick Dokos noticed that libe2p now depends on libext2fs in the 64-bit > tree, since we use ext2fs_blocks_count() and friends (see diff below). Fixed already in my rebased version of your patches: http://github.com/tytso/e2fsprogs-64bit/tree/master git://github.com/tytso/e2fsprogs-64bit.git > Possible solutions: > > Link libext2fs with libe2p > Open code 64-bit block counts > Require users of libe2p to link with libext2fs > Move ext2fs_blocks_count() and friends into a header file and inline them I chose door #2. Actually, I created new static functions in lib/e2p/ls.c, named e2p_*_blocks_count(). It's in the patch: Add-e2p-64bit-blocks-support. Note: my patchset (which is against e2fsprogs 1.41.4 at the moment) still has regression test failures, and I have done *zero* testing on 64-bit filesystems. Hopefully Val can help me with that; the updated, rebase patchset is the first step towards getting these commits merged into e2fsprogs mainline. - Ted -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/lib/e2p/ls.c b/lib/e2p/ls.c index 6d2ce70..1923793 100644 --- a/lib/e2p/ls.c +++ b/lib/e2p/ls.c @@ -20,6 +20,7 @@ #include <time.h> #include "e2p.h" +#include "ext2fs/ext2fs.h" static void print_user (unsigned short uid, FILE *f) { @@ -219,9 +220,9 @@ void list_super2(struct ext2_super_block * sb, FILE *f) fprintf(f, "Filesystem OS type: %s\n", str); free(str); fprintf(f, "Inode count: %u\n", sb->s_inodes_count); - fprintf(f, "Block count: %u\n", sb->s_blocks_count); - fprintf(f, "Reserved block count: %u\n", sb->s_r_blocks_count); - fprintf(f, "Free blocks: %u\n", sb->s_free_blocks_count); + fprintf(f, "Block count: %llu\n", ext2fs_blocks_count(sb)); + fprintf(f, "Reserved block count: %llu\n", ext2fs_r_blocks_count(sb)); + fprintf(f, "Free blocks: %llu\n", ext2fs_free_blocks_count(sb)); fprintf(f, "Free inodes: %u\n", sb->s_free_inodes_count); fprintf(f, "First block: %u\n", sb->s_first_data_block); fprintf(f, "Block size: %u\n", EXT2_BLOCK_SIZE(sb));