summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2004-11-12 02:44:31 +0000
committerMike Frysinger <vapier@gentoo.org>2004-11-12 02:44:31 +0000
commit71ab880bfc8c280966b481e77c4d8c15997c650f (patch)
treea28f49e33b4a835b70e137182fdfa8a724b768d4 /sys-fs/e2fsprogs
parentStable on sparc (diff)
downloadhistorical-71ab880bfc8c280966b481e77c4d8c15997c650f.tar.gz
historical-71ab880bfc8c280966b481e77c4d8c15997c650f.tar.bz2
historical-71ab880bfc8c280966b481e77c4d8c15997c650f.zip
old
Diffstat (limited to 'sys-fs/e2fsprogs')
-rw-r--r--sys-fs/e2fsprogs/Manifest21
-rw-r--r--sys-fs/e2fsprogs/e2fsprogs-1.32-r2.ebuild105
-rw-r--r--sys-fs/e2fsprogs/e2fsprogs-1.33.ebuild110
-rw-r--r--sys-fs/e2fsprogs/files/digest-e2fsprogs-1.32-r21
-rw-r--r--sys-fs/e2fsprogs/files/digest-e2fsprogs-1.331
-rw-r--r--sys-fs/e2fsprogs/files/e2fsprogs-1.27ea-0.8.21.diff427
6 files changed, 8 insertions, 657 deletions
diff --git a/sys-fs/e2fsprogs/Manifest b/sys-fs/e2fsprogs/Manifest
index a95ada624217..870c113e100f 100644
--- a/sys-fs/e2fsprogs/Manifest
+++ b/sys-fs/e2fsprogs/Manifest
@@ -1,21 +1,16 @@
-MD5 7295f3452399877281fc761d36c48eba e2fsprogs-1.32-r2.ebuild 2276
-MD5 5854a4ebf286618336853006fb70fa44 e2fsprogs-1.33.ebuild 2471
-MD5 2edb0d073060c192284a71d32d02adcc e2fsprogs-1.34-r1.ebuild 2884
+MD5 eb5e304aadc8e6dc037b6b87510b1a3f ChangeLog 8674
MD5 11f6d7ba53227f4104cf0c76fc29d554 e2fsprogs-1.34.ebuild 2768
-MD5 aa948c065bfdd5397dd1e4edf8d4cf9d e2fsprogs-1.35-r1.ebuild 3080
-MD5 2ee511ac5e5941604b071c9a3ff3c916 e2fsprogs-1.35.ebuild 2794
MD5 9a09f8d531c582e78977dbfd96edc1f2 metadata.xml 164
-MD5 eb5e304aadc8e6dc037b6b87510b1a3f ChangeLog 8674
+MD5 2edb0d073060c192284a71d32d02adcc e2fsprogs-1.34-r1.ebuild 2884
+MD5 2ee511ac5e5941604b071c9a3ff3c916 e2fsprogs-1.35.ebuild 2794
+MD5 aa948c065bfdd5397dd1e4edf8d4cf9d e2fsprogs-1.35-r1.ebuild 3080
MD5 83fead0fbd1ea1c0ec216479b3577af9 e2fsprogs-1.35-r2.ebuild 3170
-MD5 db361eb5cdf39ddae07e9f794d308b42 files/digest-e2fsprogs-1.32-r2 67
-MD5 3307c0c209b26bf447ff2840b7118862 files/digest-e2fsprogs-1.33 67
MD5 9c39bba6702e492a7a01624ae60587bc files/digest-e2fsprogs-1.34 67
-MD5 9c39bba6702e492a7a01624ae60587bc files/digest-e2fsprogs-1.34-r1 67
-MD5 3d9735f2397680a4978124f6805219ae files/digest-e2fsprogs-1.35 67
-MD5 3d9735f2397680a4978124f6805219ae files/digest-e2fsprogs-1.35-r1 67
-MD5 0b77829b4c6500ac9722143384ddda95 files/e2fsprogs-1.27ea-0.8.21.diff 15214
MD5 1a896f2697b055d4b8b4139c3482ac9e files/e2fsprogs-1.32-mk_cmds-cosmetic.patch 316
MD5 d9d69b54c577273521f4b8c2013a7a09 files/e2fsprogs-1.34-kernel-2.6-fix.patch 934
-MD5 b3b97c7ba36458e2842891e96e1ce0de files/e2fsprogs-1.34-swap-symlink.diff 1091
MD5 f079047f6885f762f6fa838b55236cb2 files/e2fsprogs-sed-locale.patch 5989
+MD5 9c39bba6702e492a7a01624ae60587bc files/digest-e2fsprogs-1.34-r1 67
+MD5 b3b97c7ba36458e2842891e96e1ce0de files/e2fsprogs-1.34-swap-symlink.diff 1091
+MD5 3d9735f2397680a4978124f6805219ae files/digest-e2fsprogs-1.35 67
+MD5 3d9735f2397680a4978124f6805219ae files/digest-e2fsprogs-1.35-r1 67
MD5 3d9735f2397680a4978124f6805219ae files/digest-e2fsprogs-1.35-r2 67
diff --git a/sys-fs/e2fsprogs/e2fsprogs-1.32-r2.ebuild b/sys-fs/e2fsprogs/e2fsprogs-1.32-r2.ebuild
deleted file mode 100644
index 05b2ad2abb1d..000000000000
--- a/sys-fs/e2fsprogs/e2fsprogs-1.32-r2.ebuild
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright 1999-2004 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/e2fsprogs/e2fsprogs-1.32-r2.ebuild,v 1.6 2004/06/30 17:08:25 vapier Exp $
-
-inherit eutils
-
-DESCRIPTION="Standard EXT2 and EXT3 filesystem utilities"
-HOMEPAGE="http://e2fsprogs.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="x86 ppc sparc mips alpha hppa amd64"
-IUSE="nls"
-
-#debianutils is for 'readlink'
-DEPEND="${DEPEND}
- virtual/libc
- nls? ( sys-devel/gettext )
- sys-apps/debianutils
- sys-apps/texinfo"
-RDEPEND="virtual/libc"
-
-src_unpack() {
- unpack ${A}
- # Fix a cosmetic error in mk_cmds's help output.
- cd ${S}; epatch ${FILESDIR}/${P}-mk_cmds-cosmetic.patch
-}
-
-src_compile() {
- econf \
- --enable-dynamic-e2fsck \
- --enable-elf-shlibs \
- `use_enable nls` \
- || die
-
- # Parallel make sometimes fails
- emake -j1 || die
-}
-
-src_install() {
- einstall libdir=zapme || die
- #evil e2fsprogs makefile -- I'll get you!
- rm -rf ${D}/zapme
-
- make DESTDIR=${D} install-libs || die
-
- if use nls; then
- make -C po DESTDIR=${D} install || die
- fi
-
- dodoc ChangeLog README RELEASE-NOTES SHLIBS
- docinto e2fsck
- dodoc e2fsck/ChangeLog e2fsck/CHANGES
-
- dodir /lib /bin /sbin
- cd ${D}/usr/lib
- mv * ../../lib
- cd ${D}/lib
- mv *.a ../usr/lib
- local mylib=""
- local x=""
- #install ldscripts to fix bug #4411
- cd ${D}/usr/lib
- for x in *.a
- do
- [ ! -f ${x} ] && continue
- gen_usr_ldscript ${x/a}so
- done
- #normalize evil symlinks
- cd ${D}/lib
- for x in *
- do
- [ ! -L ${x} ] && continue
- mylib="`readlink ${x}`"
- mylib="`basename ${mylib}`"
- ln -sf ${mylib} ${x}
- done
-
- mv ${D}/usr/sbin/* ${D}/sbin
- cd ${D}/usr/bin
- mv lsattr chattr uuidgen ../../bin
- cd ${D}/sbin
- mv mklost+found ../usr/sbin
- #time to convert hard links/duplicates to symbolic links
- cd ${D}/sbin
- rm fsck.*
- ln -sf e2fsck fsck.ext2
- ln -sf e2fsck fsck.ext3
- rm mkfs.*
- ln -sf mke2fs mkfs.ext2
- ln -sf mke2fs mkfs.ext3
-
- # 03 Aug 2002 <raker@gentoo.org>
- # There are awk files that don't get installed when doing
- # a 'make install'. They are the template files for
- # /bin/compile_et.
-
- cd ${S}/lib/et
- insinto /usr/share/et
- doins et_c.awk et_h.awk
- cd ${S}/lib/ss
- insinto /usr/share/ss
- doins ct_c.awk
-}
diff --git a/sys-fs/e2fsprogs/e2fsprogs-1.33.ebuild b/sys-fs/e2fsprogs/e2fsprogs-1.33.ebuild
deleted file mode 100644
index 876d8b16b2d7..000000000000
--- a/sys-fs/e2fsprogs/e2fsprogs-1.33.ebuild
+++ /dev/null
@@ -1,110 +0,0 @@
-# Copyright 1999-2004 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/e2fsprogs/e2fsprogs-1.33.ebuild,v 1.8 2004/06/30 17:08:25 vapier Exp $
-
-inherit eutils
-
-DESCRIPTION="Standard EXT2 and EXT3 filesystem utilities"
-HOMEPAGE="http://e2fsprogs.sourceforge.net/"
-SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="x86 ppc hppa amd64"
-IUSE="nls static"
-
-#debianutils is for 'readlink'
-DEPEND="${DEPEND}
- virtual/libc
- nls? ( sys-devel/gettext )
- sys-apps/debianutils
- sys-apps/texinfo"
-RDEPEND="virtual/libc"
-
-src_unpack() {
- unpack ${A}
- # Fix a cosmetic error in mk_cmds's help output.
- cd ${S}; epatch ${FILESDIR}/e2fsprogs-1.32-mk_cmds-cosmetic.patch
-}
-
-src_compile() {
-
- local myconf
- use static \
- && myconf="${myconf} --with-ldopts=-static" \
- || myconf="${myconf} --enable-dynamic-e2fsck --enable-elf-shlibs"
-
- econf \
- `use_enable nls` \
- ${myconf} || die
-
- # Parallel make sometimes fails
- emake -j1 || die
-}
-
-src_install() {
- einstall libdir=zapme || die
- #evil e2fsprogs makefile -- I'll get you!
- rm -rf ${D}/zapme
-
- make DESTDIR=${D} install-libs || die
-
- #There is .po file b0rkage with 1.33; commenting this out (drobbins, 21 Apr 2003)
- #if use nls; then
- # make -C po DESTDIR=${D} install || die
- #fi
-
- dodoc COPYING ChangeLog README RELEASE-NOTES SHLIBS
- docinto e2fsck
- dodoc e2fsck/ChangeLog e2fsck/CHANGES
-
- dodir /lib /bin /sbin
- cd ${D}/usr/lib
- mv * ../../lib
- cd ${D}/lib
- mv *.a ../usr/lib
- local mylib=""
- local x=""
- #install ldscripts to fix bug #4411
- cd ${D}/usr/lib
- for x in *.a
- do
- [ ! -f ${x} ] && continue
- gen_usr_ldscript ${x/a}so
- done
- #normalize evil symlinks
- cd ${D}/lib
- for x in *
- do
- [ ! -L ${x} ] && continue
- mylib="`readlink ${x}`"
- mylib="`basename ${mylib}`"
- ln -sf ${mylib} ${x}
- done
-
- mv ${D}/usr/sbin/* ${D}/sbin
- cd ${D}/usr/bin
- mv lsattr chattr uuidgen ../../bin
- cd ${D}/sbin
- mv mklost+found ../usr/sbin
- #time to convert hard links/duplicates to symbolic links
- cd ${D}/sbin
- rm fsck.*
- ln -sf e2fsck fsck.ext2
- ln -sf e2fsck fsck.ext3
- rm mkfs.*
- ln -sf mke2fs mkfs.ext2
- ln -sf mke2fs mkfs.ext3
-
- # 03 Aug 2002 <raker@gentoo.org>
- # There are awk files that don't get installed when doing
- # a 'make install'. They are the template files for
- # /bin/compile_et.
-
- cd ${S}/lib/et
- insinto /usr/share/et
- doins et_c.awk et_h.awk
- cd ${S}/lib/ss
- insinto /usr/share/ss
- doins ct_c.awk
-}
diff --git a/sys-fs/e2fsprogs/files/digest-e2fsprogs-1.32-r2 b/sys-fs/e2fsprogs/files/digest-e2fsprogs-1.32-r2
deleted file mode 100644
index 36577bde405a..000000000000
--- a/sys-fs/e2fsprogs/files/digest-e2fsprogs-1.32-r2
+++ /dev/null
@@ -1 +0,0 @@
-MD5 a7ced9d6edaba3a000ccc5200e09b90d e2fsprogs-1.32.tar.gz 2894603
diff --git a/sys-fs/e2fsprogs/files/digest-e2fsprogs-1.33 b/sys-fs/e2fsprogs/files/digest-e2fsprogs-1.33
deleted file mode 100644
index 57abbd3ba2f6..000000000000
--- a/sys-fs/e2fsprogs/files/digest-e2fsprogs-1.33
+++ /dev/null
@@ -1 +0,0 @@
-MD5 8d922086299ae9794b008256bde6188f e2fsprogs-1.33.tar.gz 2959524
diff --git a/sys-fs/e2fsprogs/files/e2fsprogs-1.27ea-0.8.21.diff b/sys-fs/e2fsprogs/files/e2fsprogs-1.27ea-0.8.21.diff
deleted file mode 100644
index c204210abb29..000000000000
--- a/sys-fs/e2fsprogs/files/e2fsprogs-1.27ea-0.8.21.diff
+++ /dev/null
@@ -1,427 +0,0 @@
-Extended Attributes patch to the e2fsprogs package
-14 March 2002, 20:03:41
-
-After extracting the e2fsprogs-1.27.tar.gz package, apply this patch as follows:
-
- cd e2fsprogs-1.27
- patch -p1 < ../e2fsprogs-1.27-ea-0.8.21.patch
-
-diff -Nur e2fsprogs-1.27/debugfs/icheck.c e2fsprogs-1.27ea/debugfs/icheck.c
---- e2fsprogs-1.27/debugfs/icheck.c Sun Feb 24 22:03:58 2002
-+++ e2fsprogs-1.27ea/debugfs/icheck.c Thu Mar 14 07:26:40 2002
-@@ -108,7 +108,7 @@
- while (ino) {
- if (!inode.i_links_count)
- goto next;
-- if (!ext2fs_inode_has_valid_blocks(&inode))
-+ if (!ext2fs_inode_has_valid_blocks(current_fs, &inode))
- goto next;
- /*
- * To handle filesystems touched by 0.3c extfs; can be
-diff -Nur e2fsprogs-1.27/e2fsck/e2fsck.c e2fsprogs-1.27ea/e2fsck/e2fsck.c
---- e2fsprogs-1.27/e2fsck/e2fsck.c Sun Feb 24 22:03:58 2002
-+++ e2fsprogs-1.27ea/e2fsck/e2fsck.c Thu Mar 14 07:26:44 2002
-@@ -30,6 +30,7 @@
- memset(context, 0, sizeof(struct e2fsck_struct));
-
- context->process_inode_size = 256;
-+ context->ext_attr_ver = 2;
-
- *ret = context;
- return 0;
-diff -Nur e2fsprogs-1.27/e2fsck/e2fsck.h e2fsprogs-1.27ea/e2fsck/e2fsck.h
---- e2fsprogs-1.27/e2fsck/e2fsck.h Sun Feb 24 22:03:58 2002
-+++ e2fsprogs-1.27ea/e2fsck/e2fsck.h Thu Mar 14 07:26:44 2002
-@@ -254,6 +254,8 @@
- int fs_ext_attr_inodes;
- int fs_ext_attr_blocks;
-
-+ int ext_attr_ver;
-+
- /*
- * For the use of callers of the e2fsck functions; not used by
- * e2fsck functions themselves.
-@@ -322,7 +324,7 @@
-
- /* pass1.c */
- extern void e2fsck_use_inode_shortcuts(e2fsck_t ctx, int bool);
--extern int e2fsck_pass1_check_device_inode(struct ext2_inode *inode);
-+extern int e2fsck_pass1_check_device_inode(ext2_filsys fs, struct ext2_inode *inode);
- extern int e2fsck_pass1_check_symlink(ext2_filsys fs, struct ext2_inode *inode);
-
- /* pass2.c */
-diff -Nur e2fsprogs-1.27/e2fsck/pass1.c e2fsprogs-1.27ea/e2fsck/pass1.c
---- e2fsprogs-1.27/e2fsck/pass1.c Sun Feb 24 22:03:58 2002
-+++ e2fsprogs-1.27ea/e2fsck/pass1.c Thu Mar 14 08:42:27 2002
-@@ -123,14 +123,14 @@
- * since they have the same requirement; the i_block fields should be
- * zero.
- */
--int e2fsck_pass1_check_device_inode(struct ext2_inode *inode)
-+int e2fsck_pass1_check_device_inode(ext2_filsys fs, struct ext2_inode *inode)
- {
- int i;
-
- /*
- * If i_blocks is non-zero, then this is a bogus device/fifo/socket
- */
-- if (inode->i_blocks)
-+ if (ext2fs_inode_data_blocks(fs, inode) != 0)
- return 0;
- /*
- * We should be able to do the test below all the time, but
-@@ -179,9 +179,9 @@
- EXT2_INDEX_FL)))
- return 0;
-
-- if (inode->i_blocks) {
-+ if (inode->i_size > sizeof (inode->i_block) - 1) {
- if ((inode->i_size > fs->blocksize) ||
-- (inode->i_blocks != fs->blocksize >> 9) ||
-+ (ext2fs_inode_data_blocks(fs, inode) != fs->blocksize>>9) ||
- (inode->i_block[0] < fs->super->s_first_data_block) ||
- (inode->i_block[0] >= fs->super->s_blocks_count))
- return 0;
-@@ -190,7 +190,7 @@
- if (inode->i_block[i])
- return 0;
- } else {
-- if (inode->i_size > sizeof(inode->i_block) - 1)
-+ if (ext2fs_inode_data_blocks(fs, inode) != 0)
- return 0;
-
- if (inode->i_size !=
-@@ -603,12 +603,12 @@
- ext2fs_mark_inode_bitmap(ctx->inode_reg_map, ino);
- ctx->fs_regular_count++;
- } else if (LINUX_S_ISCHR (inode.i_mode) &&
-- e2fsck_pass1_check_device_inode(&inode)) {
-+ e2fsck_pass1_check_device_inode(fs, &inode)) {
- check_immutable(ctx, &pctx);
- check_size(ctx, &pctx);
- ctx->fs_chardev_count++;
- } else if (LINUX_S_ISBLK (inode.i_mode) &&
-- e2fsck_pass1_check_device_inode(&inode)) {
-+ e2fsck_pass1_check_device_inode(fs, &inode)) {
- check_immutable(ctx, &pctx);
- check_size(ctx, &pctx);
- ctx->fs_blockdev_count++;
-@@ -617,18 +617,19 @@
- ctx->fs_symlinks_count++;
- if (!e2fsck_pass1_check_symlink(fs, &inode))
- mark_inode_bad(ctx, ino);
-- if (!inode.i_blocks) {
-+ if (ext2fs_inode_data_blocks(fs, &inode) == 0) {
- ctx->fs_fast_symlinks_count++;
-+ check_blocks(ctx, &pctx, block_buf);
- goto next;
- }
- }
- else if (LINUX_S_ISFIFO (inode.i_mode) &&
-- e2fsck_pass1_check_device_inode(&inode)) {
-+ e2fsck_pass1_check_device_inode(fs, &inode)) {
- check_immutable(ctx, &pctx);
- check_size(ctx, &pctx);
- ctx->fs_fifo_count++;
- } else if ((LINUX_S_ISSOCK (inode.i_mode)) &&
-- e2fsck_pass1_check_device_inode(&inode)) {
-+ e2fsck_pass1_check_device_inode(fs, &inode)) {
- check_immutable(ctx, &pctx);
- check_size(ctx, &pctx);
- ctx->fs_sockets_count++;
-@@ -1057,7 +1058,10 @@
- goto clear_extattr;
- header = (struct ext2_ext_attr_header *) block_buf;
- pctx->blk = inode->i_file_acl;
-- if (header->h_magic != EXT2_EXT_ATTR_MAGIC) {
-+ if ((ctx->ext_attr_ver == 1 &&
-+ header->h_magic != EXT2_EXT_ATTR_MAGIC_v1) ||
-+ (ctx->ext_attr_ver == 2 &&
-+ header->h_magic != EXT2_EXT_ATTR_MAGIC)) {
- if (fix_problem(ctx, PR_1_BAD_EA_BLOCK, pctx))
- goto clear_extattr;
- }
-@@ -1085,7 +1089,10 @@
- if (fix_problem(ctx, PR_1_EA_ALLOC_COLLISION, pctx))
- goto clear_extattr;
- }
-- if (entry->e_name_len == 0 || entry->e_name_index != 0) {
-+ if ((ctx->ext_attr_ver == 1 &&
-+ (entry->e_name_len == 0 || entry->e_name_index != 0)) ||
-+ (ctx->ext_attr_ver == 2 &&
-+ entry->e_name_index == 0)) {
- if (fix_problem(ctx, PR_1_EA_BAD_NAME, pctx))
- goto clear_extattr;
- }
-@@ -1136,9 +1143,9 @@
- int bad_size = 0;
- __u64 size;
-
-- if (!ext2fs_inode_has_valid_blocks(pctx->inode))
-+ if (!ext2fs_inode_has_valid_blocks(fs, inode) && !inode->i_file_acl)
- return;
--
-+
- pb.ino = ino;
- pb.num_blocks = pb.last_block = 0;
- pb.num_illegal_blocks = 0;
-@@ -1165,14 +1172,16 @@
- }
- }
-
-- pctx->errcode = ext2fs_block_iterate2(fs, ino,
-- pb.is_dir ? BLOCK_FLAG_HOLE : 0,
-- block_buf, process_block, &pb);
-- if (ctx->flags & E2F_FLAG_SIGNAL_MASK)
-- return;
-- end_problem_latch(ctx, PR_LATCH_BLOCK);
-- if (pctx->errcode)
-- fix_problem(ctx, PR_1_BLOCK_ITERATE, pctx);
-+ if (ext2fs_inode_has_valid_blocks(fs, inode)) {
-+ pctx->errcode = ext2fs_block_iterate2(fs, ino,
-+ pb.is_dir ? BLOCK_FLAG_HOLE : 0,
-+ block_buf, process_block, &pb);
-+ if (ctx->flags & E2F_FLAG_SIGNAL_MASK)
-+ return;
-+ end_problem_latch(ctx, PR_LATCH_BLOCK);
-+ if (pctx->errcode)
-+ fix_problem(ctx, PR_1_BLOCK_ITERATE, pctx);
-+ }
-
- if (pb.fragmented && pb.num_blocks < fs->super->s_blocks_per_group)
- ctx->fs_fragmented++;
-diff -Nur e2fsprogs-1.27/e2fsck/pass1b.c e2fsprogs-1.27ea/e2fsck/pass1b.c
---- e2fsprogs-1.27/e2fsck/pass1b.c Sun Feb 24 22:03:58 2002
-+++ e2fsprogs-1.27ea/e2fsck/pass1b.c Thu Mar 14 07:26:40 2002
-@@ -200,7 +200,7 @@
- pctx.ino = ctx->stashed_ino = ino;
- if ((ino != EXT2_BAD_INO) &&
- (!ext2fs_test_inode_bitmap(ctx->inode_used_map, ino) ||
-- !ext2fs_inode_has_valid_blocks(&inode)))
-+ !ext2fs_inode_has_valid_blocks(fs, &inode)))
- goto next;
-
- pb.ino = ino;
-diff -Nur e2fsprogs-1.27/e2fsck/pass2.c e2fsprogs-1.27ea/e2fsck/pass2.c
---- e2fsprogs-1.27/e2fsck/pass2.c Sun Feb 24 22:03:59 2002
-+++ e2fsprogs-1.27ea/e2fsck/pass2.c Thu Mar 14 07:26:40 2002
-@@ -672,7 +672,7 @@
- ext2fs_unmark_inode_bitmap(fs->inode_map, ino);
- ext2fs_mark_ib_dirty(fs);
-
-- if (!ext2fs_inode_has_valid_blocks(&inode))
-+ if (!ext2fs_inode_has_valid_blocks(fs, &inode))
- return;
-
- if (!LINUX_S_ISDIR(inode.i_mode) &&
-@@ -718,16 +718,16 @@
- !(LINUX_S_ISSOCK(inode.i_mode)))
- problem = PR_2_BAD_MODE;
- else if (LINUX_S_ISCHR(inode.i_mode)
-- && !e2fsck_pass1_check_device_inode(&inode))
-+ && !e2fsck_pass1_check_device_inode(fs, &inode))
- problem = PR_2_BAD_CHAR_DEV;
- else if (LINUX_S_ISBLK(inode.i_mode)
-- && !e2fsck_pass1_check_device_inode(&inode))
-+ && !e2fsck_pass1_check_device_inode(fs, &inode))
- problem = PR_2_BAD_BLOCK_DEV;
- else if (LINUX_S_ISFIFO(inode.i_mode)
-- && !e2fsck_pass1_check_device_inode(&inode))
-+ && !e2fsck_pass1_check_device_inode(fs, &inode))
- problem = PR_2_BAD_FIFO;
- else if (LINUX_S_ISSOCK(inode.i_mode)
-- && !e2fsck_pass1_check_device_inode(&inode))
-+ && !e2fsck_pass1_check_device_inode(fs, &inode))
- problem = PR_2_BAD_SOCKET;
- else if (LINUX_S_ISLNK(inode.i_mode)
- && !e2fsck_pass1_check_symlink(fs, &inode)) {
-diff -Nur e2fsprogs-1.27/e2fsck/pass4.c e2fsprogs-1.27ea/e2fsck/pass4.c
---- e2fsprogs-1.27/e2fsck/pass4.c Sun Feb 24 22:03:59 2002
-+++ e2fsprogs-1.27ea/e2fsck/pass4.c Thu Mar 14 09:56:54 2002
-@@ -34,8 +34,8 @@
- pctx.ino = i;
- pctx.inode = &inode;
-
-- if (!inode.i_blocks && (LINUX_S_ISREG(inode.i_mode) ||
-- LINUX_S_ISDIR(inode.i_mode))) {
-+ if (ext2fs_inode_data_blocks(fs, &inode) == 0 &&
-+ (LINUX_S_ISREG(inode.i_mode) || LINUX_S_ISDIR(inode.i_mode))) {
- /*
- * This is a zero-length file; prompt to delete it...
- */
-diff -Nur e2fsprogs-1.27/e2fsck/super.c e2fsprogs-1.27ea/e2fsck/super.c
---- e2fsprogs-1.27/e2fsck/super.c Sun Feb 24 22:03:59 2002
-+++ e2fsprogs-1.27ea/e2fsck/super.c Thu Mar 14 07:26:40 2002
-@@ -172,7 +172,7 @@
- errcode_t retval;
- struct process_block_struct pb;
-
-- if (!ext2fs_inode_has_valid_blocks(inode))
-+ if (!ext2fs_inode_has_valid_blocks(fs, inode))
- return 0;
-
- pb.buf = block_buf + 3 * ctx->fs->blocksize;
-diff -Nur e2fsprogs-1.27/e2fsck/swapfs.c e2fsprogs-1.27ea/e2fsck/swapfs.c
---- e2fsprogs-1.27/e2fsck/swapfs.c Sun Feb 24 22:03:59 2002
-+++ e2fsprogs-1.27ea/e2fsck/swapfs.c Thu Mar 14 07:26:40 2002
-@@ -158,7 +158,7 @@
- ((inode->i_block[EXT2_IND_BLOCK] ||
- inode->i_block[EXT2_DIND_BLOCK] ||
- inode->i_block[EXT2_TIND_BLOCK]) &&
-- ext2fs_inode_has_valid_blocks(inode)))
-+ ext2fs_inode_has_valid_blocks(fs, inode)))
- swap_inode_blocks(ctx, ino, block_buf, inode);
-
- if (ctx->flags & E2F_FLAG_SIGNAL_MASK)
-diff -Nur e2fsprogs-1.27/e2fsck/unix.c e2fsprogs-1.27ea/e2fsck/unix.c
---- e2fsprogs-1.27/e2fsck/unix.c Fri Mar 8 07:05:02 2002
-+++ e2fsprogs-1.27ea/e2fsck/unix.c Thu Mar 14 07:26:44 2002
-@@ -79,6 +79,7 @@
- " -j external-journal Set location of the external journal\n"
- " -l bad_blocks_file Add to badblocks list\n"
- " -L bad_blocks_file Set badblocks list\n"
-+ " -E version Extended attribute version (1-2)\n"
- ));
-
- exit(FSCK_USAGE);
-@@ -467,7 +468,7 @@
- ctx->program_name = *argv;
- else
- ctx->program_name = "e2fsck";
-- while ((c = getopt (argc, argv, "panyrcC:B:dfvtFVM:b:I:j:P:l:L:N:Ss")) != EOF)
-+ while ((c = getopt (argc, argv, "panyrcC:B:dfvtFVM:b:I:j:P:l:L:N:SsE:")) != EOF)
- switch (c) {
- case 'C':
- ctx->progress = e2fsck_update_progress;
-@@ -580,6 +581,14 @@
- "of e2fsck\n"));
- exit(1);
- #endif
-+ case 'E':
-+ if (atoi(optarg) != 1 && atoi(optarg) != 2) {
-+ usage(ctx);
-+ exit(1);
-+ }
-+ ctx->ext_attr_ver = atoi(optarg);
-+ break;
-+
- default:
- usage(ctx);
- }
-diff -Nur e2fsprogs-1.27/lib/ext2fs/bmove.c e2fsprogs-1.27ea/lib/ext2fs/bmove.c
---- e2fsprogs-1.27/lib/ext2fs/bmove.c Sun Feb 24 22:03:59 2002
-+++ e2fsprogs-1.27ea/lib/ext2fs/bmove.c Thu Mar 14 07:26:40 2002
-@@ -134,7 +134,7 @@
-
- while (ino) {
- if ((inode.i_links_count == 0) ||
-- !ext2fs_inode_has_valid_blocks(&inode))
-+ !ext2fs_inode_has_valid_blocks(fs, &inode))
- goto next;
-
- pb.ino = ino;
-diff -Nur e2fsprogs-1.27/lib/ext2fs/ext2_ext_attr.h e2fsprogs-1.27ea/lib/ext2fs/ext2_ext_attr.h
---- e2fsprogs-1.27/lib/ext2fs/ext2_ext_attr.h Sun Feb 24 22:03:59 2002
-+++ e2fsprogs-1.27ea/lib/ext2fs/ext2_ext_attr.h Thu Mar 14 07:26:44 2002
-@@ -7,7 +7,8 @@
- */
-
- /* Magic value in attribute blocks */
--#define EXT2_EXT_ATTR_MAGIC 0xEA010000
-+#define EXT2_EXT_ATTR_MAGIC_v1 0xEA010000
-+#define EXT2_EXT_ATTR_MAGIC 0xEA020000
-
- /* Maximum number of references to one attribute block */
- #define EXT2_EXT_ATTR_REFCOUNT_MAX 1024
-@@ -22,7 +23,7 @@
-
- struct ext2_ext_attr_entry {
- __u8 e_name_len; /* length of name */
-- __u8 e_name_index; /* index into table of names (n/i) */
-+ __u8 e_name_index; /* attribute name index */
- __u16 e_value_offs; /* offset in disk block of value */
- __u32 e_value_block; /* disk block attribute is stored on (n/i) */
- __u32 e_value_size; /* size of attribute value */
-diff -Nur e2fsprogs-1.27/lib/ext2fs/ext2fs.h e2fsprogs-1.27ea/lib/ext2fs/ext2fs.h
---- e2fsprogs-1.27/lib/ext2fs/ext2fs.h Fri Mar 8 07:05:02 2002
-+++ e2fsprogs-1.27ea/lib/ext2fs/ext2fs.h Thu Mar 14 07:26:40 2002
-@@ -811,7 +811,7 @@
- struct ext2_inode *f, int hostorder);
-
- /* valid_blk.c */
--extern int ext2fs_inode_has_valid_blocks(struct ext2_inode *inode);
-+extern int ext2fs_inode_has_valid_blocks(ext2_filsys fs, struct ext2_inode *inode);
-
- /* version.c */
- extern int ext2fs_parse_version_string(const char *ver_string);
-@@ -992,6 +992,13 @@
- _INLINE_ int ext2fs_group_of_ino(ext2_filsys fs, ext2_ino_t ino)
- {
- return (ino - 1) / fs->super->s_inodes_per_group;
-+}
-+
-+_INLINE_ blk_t ext2fs_inode_data_blocks(ext2_filsys fs,
-+ struct ext2_inode *inode)
-+{
-+ return inode->i_blocks -
-+ (inode->i_file_acl ? fs->blocksize >> 9 : 0);
- }
- #undef _INLINE_
- #endif
-diff -Nur e2fsprogs-1.27/lib/ext2fs/valid_blk.c e2fsprogs-1.27ea/lib/ext2fs/valid_blk.c
---- e2fsprogs-1.27/lib/ext2fs/valid_blk.c Sun Feb 24 22:04:00 2002
-+++ e2fsprogs-1.27ea/lib/ext2fs/valid_blk.c Thu Mar 14 07:26:40 2002
-@@ -24,7 +24,7 @@
- * This function returns 1 if the inode's block entries actually
- * contain block entries.
- */
--int ext2fs_inode_has_valid_blocks(struct ext2_inode *inode)
-+int ext2fs_inode_has_valid_blocks(ext2_filsys fs, struct ext2_inode *inode)
- {
- /*
- * Only directories, regular files, and some symbolic links
-@@ -38,7 +38,8 @@
- * If the symbolic link is a "fast symlink", then the symlink
- * target is stored in the block entries.
- */
-- if (LINUX_S_ISLNK (inode->i_mode) && inode->i_blocks == 0)
-+ if (LINUX_S_ISLNK (inode->i_mode) &&
-+ ext2fs_inode_data_blocks(fs, inode) == 0)
- return 0;
-
- return 1;
-diff -Nur e2fsprogs-1.27/misc/e2image.c e2fsprogs-1.27ea/misc/e2image.c
---- e2fsprogs-1.27/misc/e2image.c Tue Mar 5 09:31:15 2002
-+++ e2fsprogs-1.27ea/misc/e2image.c Thu Mar 14 07:26:40 2002
-@@ -396,7 +396,7 @@
- if (ino == 0)
- break;
- if (!inode.i_links_count ||
-- !ext2fs_inode_has_valid_blocks(&inode))
-+ !ext2fs_inode_has_valid_blocks(fs, &inode))
- continue;
-
- stashed_ino = ino;
-diff -Nur e2fsprogs-1.27/resize/resize2fs.c e2fsprogs-1.27ea/resize/resize2fs.c
---- e2fsprogs-1.27/resize/resize2fs.c Fri Mar 8 07:05:02 2002
-+++ e2fsprogs-1.27ea/resize/resize2fs.c Thu Mar 14 07:26:40 2002
-@@ -992,7 +992,7 @@
- pb.is_dir = LINUX_S_ISDIR(inode.i_mode);
- pb.changed = 0;
-
-- if (ext2fs_inode_has_valid_blocks(&inode) &&
-+ if (ext2fs_inode_has_valid_blocks(rfs->old_fs, &inode) &&
- (rfs->bmap || pb.is_dir)) {
- pb.ino = ino;
- retval = ext2fs_block_iterate2(rfs->old_fs,
-diff -Nur e2fsprogs-1.27/version.h e2fsprogs-1.27ea/version.h
---- e2fsprogs-1.27/version.h Fri Mar 8 09:32:48 2002
-+++ e2fsprogs-1.27ea/version.h Thu Mar 14 07:26:44 2002
-@@ -6,5 +6,5 @@
- * Ts'o. This file may be redistributed under the GNU Public License.
- */
-
--#define E2FSPROGS_VERSION "1.27"
--#define E2FSPROGS_DATE "8-Mar-2002"
-+#define E2FSPROGS_VERSION "1.27ea"
-+#define E2FSPROGS_DATE "14-Mar-2002"