Bug#681820: e2fsprogs: Problems in German translation

2012-07-16 Thread Ted Ts'o
On Mon, Jul 16, 2012 at 10:02:42PM +0200, Helge Kreutzmann wrote:
 
 By chance I saw a slight error in the German output e2fsprogs
 programms. I grabed the latest de.po and startet reviewing it;
 unfortunately it is quite huge and I only managed to to about 1/3 up
 to now.
 
 I found various issues, from spelling errors, inconsistent
 translations to (unfortunately) mistranslations. Due to the latter I
 like to explore if there are chances to do an upload despite the
 freeze and ask for a freeze exception.
 
 If the answer is yes (and ideally the upstream maintainer is
 repsonsive) then I could try to review a few more strings for the
 targeted upload date.

Helge,

Many thanks for your effort!  In my experience Philipp is very
responsive as the upstream Translation Project translator for
e2fsprogs.  Ideally, if agrees with your updates, he could upload a
fixed de.po for e2fsprogs to the Translation project, and I would be
very happy to get it into an updated e2fsprogs upload for Debian.  We
would have to reques a freeze exception, but if the only change is
translation and man page typo's, I'm pretty sure it wouldn't cause any
issues, since it wouldn't effect the udeb's used by the d-i team.

Regards,

- Ted


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#677624: multiarch-support should be priority: required

2012-06-15 Thread Ted Ts'o
Package: multiarch-support
Version: 2.13-33

Forwarding per Russ's observation that multiple required library
packages are depending on multiarch-support, which causes Lintian to
complain.

Given that it is a transitional package, this shouldn't be a big deal,
since it's less than 200k installed (and all of that package
documentation overhead)

Thanks,

- Ted
---BeginMessage---
Theodore Ts'o ty...@mit.edu writes:

 If a required package (such as e2fslibs, which is required by e2fsprogs)
 provides multiarch support, then Lintian requires that the package have
 a dependency on the package multiarch-support[1].

 However, this causes debcheck to complain because you now have a
 required package depending on a package, multiarch-support, which is
 only at standard priority[2] 

 [1] 
 http://lintian.debian.org/tags/missing-pre-dependency-on-multiarch-support.html
 [2] http://qa.debian.org/debcheck.php?dist=unstablepackage=e2fsprogs

 What is the right thing to do to resolve this mutually irreconcilable
 set of complaints from either Lintian or debcheck?

multiarch-support should be priority: required.  It's already a dependency
of several other priority: required packages, such as libselinux1 and
zlib1g.

That implies that in the interim you should ignore debcheck.

-- 
Russ Allbery (r...@debian.org)   http://www.eyrie.org/~eagle/


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/87aa05kxv0@windlord.stanford.edu


---End Message---


Bug#674453: e2fsck(8): Unnecessary escape of tabs in the manual

2012-05-27 Thread Ted Ts'o
tags 674453 +pending
thanks

Patch applied, thanks.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#674694: resize2fs(8): Unnecessary escape before a tab in the manual

2012-05-27 Thread Ted Ts'o
tags 674694 +pending
thanks

Patch applied, except that 1 k and 2 k blocksize looks horrible; I
much prefer 1k and 2k blocksize.  So I reverted that part of the
patch.

It may be the preferred style for SI units, but these are the same
jokers who suggest the use of ridiculous terms like tibibytes (a
term I reject, since while they may get to define what a metre is,
they don't have the authority or responsibility to define what a
byte means --- and if they did, they'd probably insist on ten bits
in a byte :-).

In any case, in the computer world we very regularly do *not* put a
space between the number and units: i.e., 640k memory.

Best regards,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#670100: e2fsprogs: Please don't use blocksize of 1024 in usage-type 'small'

2012-04-23 Thread Ted Ts'o
On Mon, Apr 23, 2012 at 03:22:52PM +0300, Touko Korpela wrote:
  Finally, the only file system where someone is likely to be creating
  that is this small in this day and age is the /boot filesystem --- and
  there, even if the drive using 512-byte emulation, performance isn't
  an issue since no one is executing out of /boot, or even modifying it
  very often.
 
 Yes, /boot is my primary worry.

Yes, and the performance hit only really happens when you need to do a
read-modify-write cycle.  And /boot doesn't get modified very often
--- only when you update a kernel, and even when you do, it's mostly
large files which will generally be contiguous.  So the performance
hit is barely measurable.

 A thing to consider is that dumb SSDs and
 USB sticks/memory cards are more common than smart SSDs.

(a) dumb SSD's still had to work well on Windows XP, and hardware
designs are conservative, so it's not clear to me this is really a
huge issue.  And (b) USB sticks/memory cards are again primarily used
for file interchange, where performance is not a big thing.  (It's
really random 4k writes where the read-modify-write cycles really
hurt.  For big files, we where we issue a large contiguous write
transaction, you only do the read-modify-write cycle for the first and
last 4k block and that's not a big deal.

 And maybe some wants to resize such small filesystem bigger but resizing
 can't change blocksize larger.

... and how often do you start with a file system *that* small?

 Still I think that at least filesystems that are larger than about 50-100MB
 in size default blocksize should be 4096.

You're certainly entitled to your opinion.  One of the reasons why
this policy is not hard coded, but can be easily modified via
/etc/mke2fs.conf is so that sysadmins can make changes for what is
most appropriate for their systems.

Regards,

- Ted




-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#670100: e2fsprogs: Please don't use blocksize of 1024 in usage-type 'small'

2012-04-23 Thread Ted Ts'o
On Mon, Apr 23, 2012 at 06:51:28PM +0300, Touko Korpela wrote:
 USB sticks and other flash media are optimised for FAT (using big blocks).
 Most of my information comes from LWN article Optimizing Linux with cheap
 flash drives https://lwn.net/Articles/428584/
 I don't know if linear reads during boot are affected but other usage is
 much slower when reads/writes aren't aligned.
 Fdisk has already fixed its default partition layout.

Read that article more closely.  Flash page sizes are well beyond 4k;
with modern flash they are 32k and 64k.  Hence, any read *smaller*
than the page size (32k or 64k) will take the same amount of time as a
page read.  It's not going matter whether it is 512-byte aligned or 4k
aligned.  And if you do a nice big contiguous read (i.e., reading in a
4MB kernel image), it might make a small amount of difference, but
only at the beginning and the end of the file, which might result in a
performance hit of just under 0.2% --- i.e., reading in a 4MB kernel,
which might take 1.100 millseconds, might end up taking 1.102
millseconds instead.  Good luck measuring that.

For writes, to get optimal speeds, you need to be doing 4MB aligned
writes.  Will there be a difference between 512 byte and 4k random
writes?  It depends on the SSD.  For good SSD's it won't matter at
all.  For bad ones, there may be some difference, but the big
breakpoint happens with 4MB writes (or whatever the erase block size
happens to be --- for newer devices, they might be 8MB at this point).

And again, for /boot, it's really not going to matter.  Heck, on my
systems /boot is generally well larger than 512MB anyway (but that's
because I'm a kernel developer :-).

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#670100: e2fsprogs: Please don't use blocksize of 1024 in usage-type 'small'

2012-04-22 Thread Ted Ts'o
On Mon, Apr 23, 2012 at 01:17:34AM +0300, Touko Korpela wrote:
 Package: e2fsprogs
 Version: 1.42.2-2
 Severity: normal
 
 I noticed that mke2fs has a default blocksize of 1024 bytes when it uses
 filesystem type 'small' (3-512MB) from mke2fs.conf.
 It's a bad thing for performance (more so now when 4K sector HDDs and SDDs
 are common). Also space savings are quite small.

You can always override the blocksize if you feel strongly about this.

The performance problem is only true on very new disks --- and it's
rare that someone would be formatted a file system so small on such
disks.  I'll also note that many SDD's can handle 512 byte mis-aligned
blocks (i.e., Windows XP formatting) just fine.  It doesn't make any
difference at all on Intel SSD's, for example.

Secondly, mke2fs will use 4k blocks if the drive requires it (i.e.,
for Advanced Format disks with 4k sectors).  So the problem you're
worried about only occurs for Advanced Format drives with 512e
emulation.

Finally, the only file system where someone is likely to be creating
that is this small in this day and age is the /boot filesystem --- and
there, even if the drive using 512-byte emulation, performance isn't
an issue since no one is executing out of /boot, or even modifying it
very often.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#669730: e2fsprogs: Bigalloc is not documented

2012-04-21 Thread Ted Ts'o
Hi Touko,

Note that bigalloc is still somewhat under development; there are
number of bugs that are still in the kernel code, so at this point I
can't really recommend non-developers use it in production yet...

(Some of the bugs weren't evident at the time of the 1.42 release, or
I would have added more cautions in the e2fsprogs release notes.)

 - Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#666460: define 'check' clearer

2012-04-02 Thread Ted Ts'o
On Mon, Apr 02, 2012 at 06:34:39AM +0800, jida...@jidanni.org wrote:
 My main motivation is that for years uses see
 checking messages at boot.
 
 On a dentist's bill at least checking is separate from treating.
 
 So somehow the user should be more informed about what is going on.
 
 Else he wonders if all that Windows defragmentation is somehow
 unnecessary on Linux, and for years his disks have passed with flying
 colors... When if fact the dentist is doing more than just looking.

This is no different from Windows when it runs the CHKDSK program; it
says that it's checking the disk, but it's really checking and
repairing it.  And none of this has anything to do with
defragmentation; it has to do with dealing with potentially corrupted
file systems after hardware failures/hiccups --- or if a USB thumb
drive is forcibly removed in the middle of a write operation, and the
flash translation's metadata is corrupted.

 I really have no idea.
 
 I just wish
 =Checking... done===
 messages were more honest.
 
 I just don't like my dentist to say he only checked when he in fact
 plans to check and maybe alter.

This message has nothing to do with the fsck man page or the
util-linux package. that's really a matter of the system startup
scripts.  But I'll note that the term checking has a very long
history, going back decandes for Linux, Unix, as well as in MS-DOS /
Windows --- so it's not even Linux / Unix.

   - Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#666460: define 'check' clearer

2012-04-01 Thread Ted Ts'o
On Sat, Mar 31, 2012 at 06:39:35AM +0800, jida...@jidanni.org wrote:
 Package: util-linux
 Version: 2.20.1-4
 Severity: wishlist
 File: /usr/share/man/man8/fsck.8.gz
 X-debbugs-cc: ty...@mit.edu
 
 The man page should say by 'check' we mean that nothing will be altered
 on the disk except updating the mount tally. Anything more invasive we
 call 'repair'. Or something like that. It is not clear. One just guesses.

The man page currently says:

Fsck is used to check and optionally repair one or more Linux file
systems

That's not technically correct since in actual practice is fsck with
no options will repair the file system.  This becomes clear if you
read the definitions of the -y, -n, and -a/-p options.

So probably the best thing to do is delete the word optionally in
the above statement.

- Ted





-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#666725: secure passwords more predictable than expected

2012-04-01 Thread Ted Ts'o
severity 666725 normal
thanks

On Sun, Apr 01, 2012 at 12:50:58PM +0200, Thomas Arendsen Hein wrote:
 
 When using pwgen -s 1 50 to generate 50 one-char passwords,
 only lowercase letters are used.
 
 When using pwgen -s 2 50 to generate 50 two-char passwords,
 exactly one lowercase letter and one number is used.
 
 Three-char and longer passwords are not affected by this major
 security issue.

Thanks for reporting this, and I agree it's a bug, but if you're using
one or two letter passwords (or heck, anything under 5 characters),
you're totally insecure anyway.  Whether someone has to brute force 26
possible passwords versus 62 possible passwords is not a major
security issue.  :-)

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#666460: define 'check' clearer

2012-04-01 Thread Ted Ts'o
One of the reasons why the fsck page is a little vague is that it's a
front end progam which executes a file system specific checker
program.  These programs are not necessarily consistent in how they
operate.  The way e2fsck, which is the file system checker used for
ext2, ext3, and ext4 (and so /sbin/fsck.ext2, /sbin/fsck.ext3, and
/sbin/fsck.ext4, are either sym links or hard links to /sbin/e2fsck)
works is that without any options, it is interactive; it will require
access to a tty, and before it actually makes any changes, it will
*ask* the user whether it wants to correct a particular file system
corruption if it comes a cross scuh a corruption.

The options -n, and -y will make e2fsck automatically answer no, or
yes to questions, so it can be used non-interactively --- i.e., it
doesn't need access to a valid tty for input, which is the case for
boot scripts.

The -p/-a option for e2fsck is called preen mode, which will answer
yes automatically for safe questions, and will exit with an error,
causing the boot script to abort the boot, for dangerous questions
that requires a system administrator's personal attention to minimize
the chances of data loss.

Other file system consistency checkers are sometimes a little
different, although most of them handle the -y, -n, and -a/-p as
described in the fsck man page since that's what the boot scripts use.

 - Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#665885: e2fsprogs: libcomerr2.shlibs should point at e2fsprogs-udeb for udebs

2012-03-27 Thread Ted Ts'o
tags 665885 +pending
thanks

On Tue, Mar 27, 2012 at 06:41:42PM +0200, Julien Cristau wrote:
  Is this what you are looking for?
  
  % more debian/libcomerr2/DEBIAN/shlibs 
  libcom_err 2 libcomerr2 (= 1.33-3)
  udeb: libcom_err 2 e2fsprogs-udeb (= 1.33-3)

 Yep, that looks like what I'd expect.  Thanks.

Great, just checking since I wasn't familiar with that udeb-specific
syntax in the shlibs file.

I've applied the following patch that will be in the e2fsprogs 1.42.2
release.

- Ted

commit 38c5e731157116b7cd350e2e3c05e64340307a2c
Author: Theodore Ts'o ty...@mit.edu
Date:   Tue Mar 27 11:48:18 2012 -0700

debian: add pointer to e2fsprogs-udeb to libcomerr2.shlibs

The udeb for btrfs-tools need libcom_err.so.2, which is packaged as a
part of e2fsprogs-udeb since we don't have a separate libcomerr2 udeb.
So we need to make sure the shlibs file has an explicit pointer to
handle this case.

Addresses-Debian-Bug: #665885

Signed-off-by: Theodore Ts'o ty...@mit.edu

diff --git a/debian/rules b/debian/rules
index 82a1576..1f6e7b4 100755
--- a/debian/rules
+++ b/debian/rules
@@ -618,7 +618,7 @@ endif
dh_compress
 
dh_makeshlibs -Ne2fsprogs-udeb -Nlibblkid1-udeb -Nlibuuid1-udeb
-   dh_makeshlibs -plibcomerr${COMERR_SOVERSION} \
+   dh_makeshlibs --add-udeb=e2fsprogs-udeb -plibcomerr${COMERR_SOVERSION} \
-V 'libcomerr2 (= 1.33-3)'
 ifneq ($(UTIL_LINUX_NG),yes)
dh_makeshlibs -plibblkid${BLKID_SOVERSION} -V 'libblkid1 (= 1.39-1)'



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#665427: Fix roff syntax and typo in mke2fs.conf.5 and tune2fs.8

2012-03-26 Thread Ted Ts'o
tags 665427 +pending
thanks

On Fri, Mar 23, 2012 at 10:27:11PM -0400, David Prévot wrote:
 
 We noticed some tiny errors in the mke2fs.conf.5 and tune2fs.8 manpages
 while translating them in French (for the manpages-fr-extra package),
 please find attach a patch to address these issues.

Thanks, applied.

 BTW, we would be pleased if you could consider shipping the translated
 manpages directly in your package, or even better, help us to integrate
 them upstream.

The major concern that I have with including the translated manpages
is the synchronization problem that this implies.  By definition the
translated man pages will always be out of sync, whenever I make
change; I can forsee this leading to endless bug reports, for which I
am not really able to act upon.  Also, how do the man pages get
updated?  Do I have to ask?  Will someone be checking the e2fsprogs
git repository on a regular basis to find man page changes?

It just seems that including translated man pages is a support
nightmare.

The other question I have is if I include the French man pages in the
e2fsprogs package, then what if I start having to include German,
Spanish, Polish, Turkish, etc.  Wouldn't this massively bloat the
e2fsprogs package?  And if I have to create an e2fsprogs-fr-manpages,
and a e2fsrpogs-es-manpages, etc., again this start looking like a
huge amount of work just to give me more bug reports that I'm not
capable of handling (since I don't speak French.)

Regards,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#665885: e2fsprogs: libcomerr2.shlibs should point at e2fsprogs-udeb for udebs

2012-03-26 Thread Ted Ts'o
On Mon, Mar 26, 2012 at 09:53:56PM +0200, Julien Cristau wrote:
 Package: e2fsprogs
 Version: 1.42.1-2
 Severity: important
 Tags: d-i
 
 (x-debbugs-cc to debian-boot and the btrfs-tools maintainer)
 
 btrfs-tools-udeb's btrfsctl and mkfs.btrfs seem to be linked against
 libcom_err.so.2, and the package ends up with a dependency on
 libcomerr2, which isn't an udeb.  Since libcom_err seems to be included
 in e2fsprogs-udeb, I guess this means the shlibs file should be adjusted
 to point there.  See the --add-udeb option to dh_makeshlibs.

Is this what you are looking for?

% more debian/libcomerr2/DEBIAN/shlibs 
libcom_err 2 libcomerr2 (= 1.33-3)
udeb: libcom_err 2 e2fsprogs-udeb (= 1.33-3)

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#663237: e2fsprogs: [patch] Make resize2fs shrinking use much less CPU

2012-03-09 Thread Ted Ts'o
On Fri, Mar 09, 2012 at 08:11:05PM +0200, Sami Liedes wrote:
 Shrinking a filesystem is currently very CPU intensive. On a 100G ext4
 filesystem filled to 50% full by making copies of /usr/share/doc to
 $MNTPOINT/doc{1,2,3,...}, running resize2fs on a fairly slow (~5400
 rpm) disk and a fast Core i7 processor

Thanks for looking into this!

 I also noted that resize2fs does not call ext2fs_open2() with
 EXT2_FLAG_64BITS set; is there a reason for that? Adding that flag
 change causes a minor speedup by eliminating
 ext2fs_test_generic_bitmap() from the call chain.

Yeah, resize2fs hasn't had work done on it to support 64-bit file
systems, which is why it hasn't been changed to set that flag.  That
flag only means that it was compiled with the new 64-bit capable
header files, though, so it's safe to set that flag.  We just hadn't
gotten around to it.

 After these optimizations, the wall time taken to resize the same
 filesystem has decreased from 96m27s to 39m49s:

Cool!!

 
 A tentative (or proof of concept) patch is attached. Some concerns
 that I have:
 
 1. How should internal errors, like functions returning EINVAL when
that ostensibly cannot be due to invalid filesystem, be handled?
Currently ext2fs_new_inode() just propagates the error further:
 
 +   if (err != ENOENT)
 +   return err; /* Internal error? */

In general, errors get propagated upwords, although if a function can
recover in some way, or wishes to translate the error from ENOENT to
some new com_err defined code, so that the user gets a more specific
error message (i.e, Configuration file not found instead of just
file not found), it can do that.

 2. My additions in blkmap64_ba.c rely on the availability of
stdint.h and intptr_t (to detect when a pointer is 8-byte
aligned). Perhaps that should be done in another way if C89
compatibility is a concern?

You could just cast the pointer to an unsigned long before you mask it
with 0x07  in the highly unlikely case that the pointer is wider
than an unsigned long, it won't matter since you really want to look
at the low three bits anyway.

 3. 64-bit scans might be slower on a system with native register size
64 bits. I doubt they will be slower than the code used to be,
though.

Probably; it's easy enough to test on a 32-bit x86 binary.


 4. What is bitmap-cluster_bits and how should it be handled? in
ba_find_first_zero(); similar code in
ext2fs_find_first_zero_generic_bmap():
 
 +   /* FIXME what is this? */
 +   if (bitmap-cluster_bits)
 +   return EINVAL;
 

It's something which is only used for bigalloc file systems, where
it indicates the cluster size.  With this feature, instead of the
block allocation bitmap indicate block numbers being free, it
indicates cluster numbers being free, where a cluster is a power of
two number of blocks.  It's not something you need to worry about in
this context, because resize2fs doesn't support bigalloc file systems
yet, and it doesn't make much difference in terms of how the libext2fs
library functions work.

 5. Is returning ENOENT the preferred way of indicating not found?
How is this supposed to integrate in the com_err framework?

What is it that is not being found?  A bit in the bitmap?  In that
case I'd probably define a new com_err error code.

 I'd be happy to update the patch to fix any remaining issues, unless
 you think there's another, cleaner solution to the slowness.

It would be really great if you could break things into small logical
patches, and send them to the linux-ext4 list for review.

Thanks,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#654457: Please enabled hardened build flags

2012-02-20 Thread Ted Ts'o
On Mon, Feb 20, 2012 at 09:28:49PM +0100, Simon Ruderich wrote:
 dpkg-buildflags  /dev/null
 
 Dash, which is (now) the default shell for scripts on Debian,
 doesn't support that - and it's used by the buildds I think. I
 guess you have bash as your /bin/sh which accepts that syntax.
 
 The following works fine:
 
 dpkg-buildflags  /dev/null 21
 
 And fixes the hardening flags for me.

OK, I'll try this and see how that works out.

 But you don't need to check if dpkg-buildflags is available. You
 could use the method I suggested in the last message and call
 dpkg-buildflags unconditionally - if it doesn't exist no output
 is added to the *FLAGS variables.

I believe I do need to do the check, because if the *FLAGS are set
(even if they are set to the empty string), they will override what
dpkg-buildpackage sets on Ubuntu obsolete systems (per corporate
security dictats, I'm forced to run Ubuntu 10.04 LTS on my laptop).

That's why if dpkg-buildflags isn't available, I'm explicitly setting
CFLAGS and LDFLAGS to what was the default on older versions of dpkg.

 Btw. I think there's one problem with the current debian/rules:
 If dpkg-buildflags is found and used then
 -Wl,-Bsymbolic-functions is missing from LDFLAGS, I'm not sure if
 this was intended.

Yes, that was the default from Ubuntu 10.04.  But if dpkg-buildflags
is going to supply something else, we'll use whatever the distro
defaults are.  If I understand things correctly, even Debian
obsolete^H^H^H^H^H^H^H stable supports dpkg-buildflags so this is
really only something needed to support Ubuntu LTS.

Sometime after Ubuntu LTS 12.04 I'll stop worrying about this, but for
right now, I'm forced to use Ubuntu LTS, so I'm trying to support it.

 - Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#654457: Please enabled hardened build flags

2012-02-20 Thread Ted Ts'o
On Mon, Feb 20, 2012 at 09:28:49PM +0100, Simon Ruderich wrote:
 On Sun, Feb 19, 2012 at 10:39:40PM -0500, Ted Ts'o wrote:
  I don't understand, but it looks like the hardening flags are being
  passed, but either (a) they are't correct, or (b) they seemingly have
  no effect.  Can you help me?  What have I missed?
 
 The hardening flags in the build log you posted are correct - and
 have an effect in your local build.

OK, so, this is considered an acceptable result?

ty...@tytso-glaptop.cam.corp.google.com {/kbuild/debian/e2fsprogs-1.42.1}
530% hardening-check debian/BUILD-STD/e2fsck/e2fsck
debian/BUILD-STD/e2fsck/e2fsck:
 Position Independent Executable: no, normal executable!
 Stack protected: yes
 Fortify Source functions: yes (some protected functions found)
 Read-only relocations: yes
 Immediate binding: no not found!

i.e., it's ok for the purposes of the hardening effort for the
executable to not be PIE, and not to have immediate binding enabled?

Thanks,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#654457: Please enabled hardened build flags

2012-02-19 Thread Ted Ts'o
On Sun, Feb 19, 2012 at 04:39:38PM +0100, Simon Ruderich wrote:
 
 Dear Maintainer,
 
 It looks like the hardening flags weren't applied in 1.42.1-1.
 For example:
 
 $ hardening-check /sbin/fsck.ext4
 /sbin/fsck.ext4:
  Position Independent Executable: no, normal executable!
  Stack protected: no, not found!
  Fortify Source functions: no, only unprotected functions found!
  Read-only relocations: no, not found!
  Immediate binding: no not found!
 
 I'm not sure why the if construct doesn't work correctly, but the
 original patch from Moritz should also work if dpkg-buildflags
 doesn't exist (the flags are empty in that case).

I don't understand, but it looks like the hardening flags are being
passed, but either (a) they are't correct, or (b) they seemingly have
no effect.  Can you help me?  What have I missed?

Thanks,

- Ted

ty...@tytso-glaptop.cam.corp.google.com {/kbuild/debian/e2fsprogs-1.42.1}  
528% /bin/rm debian/BUILD-STD/e2fsck/pass1.o
ty...@tytso-glaptop.cam.corp.google.com {/kbuild/debian/e2fsprogs-1.42.1}  
529% make -C debian/BUILD-STD/e2fsck V=1
make: Entering directory 
`/kbuild/debian/e2fsprogs-1.42.1/debian/BUILD-STD/e2fsck'
gcc -c -I. -I../lib -I/kbuild/debian/e2fsprogs-1.42.1/lib -D_FORTIFY_SOURCE=2 
-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security 
-Werror=format-security -D__NO_STRING_INLINES 
/kbuild/debian/e2fsprogs-1.42.1/e2fsck/pass1.c -o pass1.o
gcc -Wl,-z,relro -Wl,-rpath-link,../lib -rdynamic -o e2fsck crc32.o dict.o 
unix.o e2fsck.o super.o pass1.o pass1b.o pass2.o pass3.o pass4.o pass5.o 
journal.o badblocks.o util.o dirinfo.o dx_dirinfo.o ehandler.o problem.o 
message.o quota.o recovery.o region.o revoke.o ea_refcount.o rehash.o profile.o 
prof_err.o sigcatcher.o  ../lib/libquota.a ../lib/libext2fs.so 
../lib/libcom_err.so  -lblkid-luuid ../lib/libe2p.so 
make: Leaving directory 
`/kbuild/debian/e2fsprogs-1.42.1/debian/BUILD-STD/e2fsck'
ty...@tytso-glaptop.cam.corp.google.com {/kbuild/debian/e2fsprogs-1.42.1}  
530% hardening-check debian/BUILD-STD/e2fsck/e2fsck
debian/BUILD-STD/e2fsck/e2fsck:
 Position Independent Executable: no, normal executable!
 Stack protected: yes
 Fortify Source functions: yes (some protected functions found)
 Read-only relocations: yes
 Immediate binding: no not found!
ty...@tytso-glaptop.cam.corp.google.com {/kbuild/debian/e2fsprogs-1.42.1}  
531% dpkg-buildflags 
CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat 
-Wformat-security -Werror=format-security
CPPFLAGS=-D_FORTIFY_SOURCE=2
CXXFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat 
-Wformat-security -Werror=format-security
FFLAGS=-g -O2
LDFLAGS=-Wl,-z,relro
ty...@tytso-glaptop.cam.corp.google.com {/kbuild/debian/e2fsprogs-1.42.1}  
532% gcc --version
gcc (Debian 4.6.2-14) 4.6.2
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.




-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#654457: Please enabled hardened build flags

2012-02-15 Thread Ted Ts'o
tags 654457 +pending
thanks

Thanks for sending a proposed patch!  I had to slightly modify it so
it deals with the case where we are building on an ancient distro that
doesn't yet have dpkg-buildflags (since I support building this on
systems such as Ubuntu 10.04 LTS and Debian stable).

I've checked in a fix and it will be in e2fsprogs 1.41.1.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#654206: [PATCH] ext4: Report max_batch_time option correctly

2012-01-04 Thread Ted Ts'o
On Mon, Jan 02, 2012 at 02:13:02PM +, Ben Hutchings wrote:
 Currently the value reported for max_batch_time is really the
 value of min_batch_time.
 
 Reported-by: Russell Coker russ...@coker.com.au
 Signed-off-by: Ben Hutchings b...@decadent.org.uk

Applied, thanks.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#634401: extundelete: FTBFS: extundelete.cc:963:47: error: invalid use of incomplete type 'struct opaque_ext2_group_desc'

2012-01-03 Thread Ted Ts'o
On Tue, Jan 03, 2012 at 11:54:46AM -0600, Eric Sandeen wrote:
  
  I just investigated on this FTBFS issue.
  
  The problem is that extundelete doesn't compile against e2fslibs-dev
  versions =1.42. Therefore extundelete was just removed from
  Debian/testing, so if this bug can't be resolved then extundelete
  sadly can't be shipped with the upcoming Debian stable release.

The extundelete program also needs to be changed to support 64-bit
file systems.

  The responsible change in e2fslibs-dev is this one (libext2fs: make
  fs-group_desc opaque):
  

  http://git.kernel.org/?p=fs/ext2/e2fsprogs.git;a=commit;h=efe0b401465a3ee836180614b5b435acbb84fc27
  
  The commit message talks about EXT2FS_OLD_32_COMPAT which should
  provide compiling of Old-style applications who don't want to
  change their source code. Sadly EXT2FS_OLD_32_COMPAT wasn't
  implemented in this commit nor in a following one.
 
 Hm, none of that was in my original commit or message, I think
 Ted added that text on commit, but didn't modify the patch at all.

Yeah, somehow that change got lost.  I'm not sure what happened.

 There are other problems though, I think, in parse_inode_block() for example,
 things in there have changed as well... this tool seems to be getting a little
 to grubby in the ext internals.  I think maybe it should be making
 use of ext2fs_swap_inode() instead.
 
  The issue was brought up on the mailinglist of extundelete a few
  weeks ago, but there wasn't a reaction from upstream since then.
  
  Eric and Theodore - any ideas what's the best way to resolve this
  issue in the meanwhile?

I'll look at trying to add the backwards compatibility support back
into a future version of e2fsprogs, but really, extundelete should be
updated to use the accessor functions and updated to support 64-bit
file systems.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#652275: Guided partitioning should not offer separate /usr, /var, and /tmp partitions; leave that to manual partitioning

2011-12-27 Thread Ted Ts'o
On Wed, Dec 21, 2011 at 02:32:58PM +0100, Goswin von Brederlow wrote:
  If we want to improve fsck time then the best thing to do would be
  to consider a different default value for the -i option of mke2fs.

This advice is not applicable for ext4, since it will not read unused
portions of the inode table.  There have been a number of improvements
in the ext4 file system format which means that in general fsck times
for ext4 are around 7-12 times faster than the equivalent ext3 file
system.

  As an aside mke2fs -t ext4 includes huge_file, dir_nlink, and
  extra_isize while mke4fs doesn't.  This difference seems wrong to
  me.
 
 Urgs. +1.

I've never heard of mke4fs --- who thought up that abortion?

mke2fs -t ext4 and mkfs.ext4 will both do the right thing, as far
as creating file systems that have the correct ext4 file system
features for a file system designed to be mounted using the ext4 file
system driver in modern Linux kernels.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#649689: e2fsprogs: FTBFS on hurd-i386

2011-11-28 Thread Ted Ts'o
On Sun, Nov 27, 2011 at 10:27:48PM -0500, Ted Ts'o wrote:
  Additionally, the call to msync() is made conditional on HAVE_MSYNC
  instead of MS_SYNC by a test in configure.in for that function. On
  GNU/Hurd msync() is only a stub, so with this test a potential run-time
  error is avoided.

Wait a second --- do you mean that msync() doesn't exist, but it
exists but is a no-op?

If it's the latter (is only a stub), then adding a check for
HAVE_MSYNC won't help, because configure will check for the stub, find
it, and come to the wrong conclusion.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#649689: e2fsprogs: FTBFS on hurd-i386

2011-11-28 Thread Ted Ts'o
On Mon, Nov 28, 2011 at 07:37:53PM +0100, Svante Signell wrote:
 
 Checking for HAVE_MSYNC helps because configure finds the stub and
 decides it is not usable, see below.

Um, how does configure find the stub if you're just doing an

AC_CHECK_FUNCS(... msync ...)

That just checks if a function can link against msync() and not fail.
It's not going to cause configure to go peering deeply into header
files.  Are you proposing that we use some specific autoconf macro?
If so, which macro?  Your patch just uses AC_CHECK_FUNCS, which
doesn't have any kind of hueristic magic or artificial intelligence
capabilities as far as I know

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#649689: e2fsprogs: FTBFS on hurd-i386

2011-11-27 Thread Ted Ts'o
tags 649689 +pending -patch
thanks

On Wed, Nov 23, 2011 at 09:44:34AM +0100, Svante Signell wrote:
 The attached patch fixes the FTBFS problems for GNU/Hurd due to the lack
 of a PATH_MAX definition. Instead of fixed length strings dynamic
 allocation is used.  

I fixed this problem a different way.  See below.

 Additionally, the call to msync() is made conditional on HAVE_MSYNC
 instead of MS_SYNC by a test in configure.in for that function. On
 GNU/Hurd msync() is only a stub, so with this test a potential run-time
 error is avoided.

I'll take care of this too --- but in the future I'd appreciate if you
submitted separate patches for separate fixes.

Thanks, regards

- Ted

commit 4cd2d4ca4128456b82e927b1efd2dd023100934e
Author: Theodore Ts'o ty...@mit.edu
Date:   Sun Nov 27 20:31:36 2011 -0500

libquota: remove use of PATH_MAX and replace it with QUOTA_NAME_LEN

PATH_MAX is not portable (for example, it doesn't exist on the Hurd).
So replace it with a new define, which defines the maximum length of
the base quota name.  As it turns out, this is substantially smaller
than PATH_MAX.

Also move the definitions relating to quotaio.c from mkquota.h to
quotaio.h, as a cleanup.

Addresses-Debian-Bug: #649689

Signed-off-by: Theodore Ts'o ty...@mit.edu

diff --git a/lib/quota/mkquota.h b/lib/quota/mkquota.h
index 4fbaedd..a5fa74b 100644
--- a/lib/quota/mkquota.h
+++ b/lib/quota/mkquota.h
@@ -60,9 +60,4 @@ int quota_is_on(ext2_filsys fs, int type);
 int quota_file_exists(ext2_filsys fs, int qtype, int fmt);
 void quota_set_sb_inum(ext2_filsys fs, ext2_ino_t ino, int qtype);
 
-/* In quotaio.c */
-const char *quota_get_qf_name(int type, int fmt, char *buf);
-const char *quota_get_qf_path(const char *mntpt, int qtype, int fmt,
- char *path_buf, size_t path_buf_size);
-
 #endif  /* __QUOTA_QUOTAIO_H__ */
diff --git a/lib/quota/quotaio.c b/lib/quota/quotaio.c
index d0b5b9d..3f434ca 100644
--- a/lib/quota/quotaio.c
+++ b/lib/quota/quotaio.c
@@ -56,7 +56,7 @@ const char *quota_get_qf_name(int type, int fmt, char *buf)
 {
if (!buf)
return NULL;
-   snprintf(buf, PATH_MAX, %s.%s,
+   snprintf(buf, QUOTA_NAME_LEN, %s.%s,
 basenames[fmt], extensions[type]);
 
return buf;
@@ -66,7 +66,7 @@ const char *quota_get_qf_path(const char *mntpt, int qtype, 
int fmt,
  char *path_buf, size_t path_buf_size)
 {
struct stat qf_stat;
-   char qf_name[PATH_MAX] = {0};
+   char qf_name[QUOTA_NAME_LEN];
 
if (!mntpt || !path_buf || !path_buf_size)
return NULL;
diff --git a/lib/quota/quotaio.h b/lib/quota/quotaio.h
index f8cc1f1..91a1ff2 100644
--- a/lib/quota/quotaio.h
+++ b/lib/quota/quotaio.h
@@ -159,4 +159,12 @@ const char *type2name(int type);
 
 void update_grace_times(struct dquot *q);
 
+/* size for the buffer returned by quota_get_qf_name(); must be greater
+   than maxlen of extensions[] and fmtnames[] (plus 2) found in quotaio.c */
+#define QUOTA_NAME_LEN 16
+
+const char *quota_get_qf_name(int type, int fmt, char *buf);
+const char *quota_get_qf_path(const char *mntpt, int qtype, int fmt,
+ char *path_buf, size_t path_buf_size);
+
 #endif /* GUARD_QUOTAIO_H */



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644989: Still not fixed

2011-11-16 Thread Ted Ts'o
On Wed, Nov 16, 2011 at 10:24:23AM +0600, Roman Mamedov wrote:
 Hello,
 
 I have just tried the version from Squeeze (1.41.12-4stable1), and it does 
 work properly

Yes, that's not surprising.  The 1.41 version doesn't try to use the
new-style resize2fs ioctl.  The fundamental issue is what error code
should be returned when an ioctl doesn't exist.  Note:

% file /tmp/bad-ioctl-32 /tmp/bad-ioctl-64
/tmp/bad-ioctl-32: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), 
dynamically linked (uses shared libs), for GNU/Linux 2.6.26, not stripped
/tmp/bad-ioctl-64: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), 
dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped
% /tmp/bad-ioctl-64 file
ENOTTY is 25
EINVAL is 22
ioctl 0xDEAD1 returns 25 (Inappropriate ioctl for device)
% /tmp/bad-ioctl-32 file
ENOTTY is 25
EINVAL is 22
ioctl 0xDEAD1 returns 22 (Invalid argument)

The issue is the kernel is returning a different error code when you
are using a 32-bit binary with a 64-bit kernel, which you are doing on
your MIPS system.  So this is a mips-specific bug, and arguably its a
kernel-level problem.  We can work around it by checking for EINVAL,
but that's unfortunate since EINVAL can mean other things ---
including its canonical Invalid argument.

- Ted

/*
 * bad-ioctl.c - try calling a non-existent ioctl, and see what happens
 */

#include stdio.h
#include string.h
#include unistd.h
#include stdlib.h
#include errno.h
#include fcntl.h
#include sys/ioctl.h

int main(int argc, char **argv)
{
int fd;

fd = open(argv[1], O_RDONLY, 0);
if (fd  0) {
perror(open);
exit(1);
}

printf(ENOTTY is %d\n, ENOTTY);
printf(EINVAL is %d\n, EINVAL);
if (ioctl(fd, (unsigned) 0xDEAD1, 0)  0) {
int err = errno;

fprintf(stderr, ioctl 0xDEAD1 returns %d (%s)\n,
err, strerror(err));
exit(1);
}
return 0;
}




-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644989: Still not fixed

2011-11-15 Thread Ted Ts'o
On Wed, Nov 16, 2011 at 02:29:37AM +0600, Roman Mamedov wrote:
 reopen 644989 !
 thanks
 
 Hello,
 
 With e2fsprogs 1.42~WIP-2011-10-16-1 and
 
 Linux hoshi 3.1.0-libre-lemote-rm2-mfgpt #2 Fri Nov 11 03:07:23 YEKT 2011 
 mips64 GNU/Linux
 

Are you using a 32-bit or 64-bit userspace with this 64-bit kernel?
Because I can't replicate the problem, and in fact everyone else was
complaining when we were checking for EINVAL instead of ENOTTY (which
is what should be returned).

# /vdb/resize2fs /dev/vdc
resize2fs 1.42-WIP (16-Oct-2011)
Filesystem at /dev/vdc is mounted on /vdc; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 20
Performing an on-line resize of /dev/vdc to 5242880 (1k) blocks.
The filesystem on /dev/vdc is now 5242880 blocks long.

  p Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#647039: e2fsprogs: e4defrag does not work with LVM device nodes

2011-11-10 Thread Ted Ts'o
On Mon, Oct 31, 2011 at 12:16:35AM +0100, Laurent Grawet wrote:
 Then I would like to know whether chattr +e on files and dirs when
 coming from ext3 is enough to trigger online defragmentation in order to
 migrate those files to extent format ?

The chattr +e will migrate older files to use the extent format; it
will, however, not defragment the files.  This matters primarily for
very large files which are tens of megabytes or larger.  And if the
file system's free space wasn't fragmented, the difference will be
marginal even in that case.

And if the file system free space is heavily fragmented (say, if you
were running it at  80-90% full for long periods of time), e4defrag
isn't smart enough to handle this case, so the only real solution to
recover the lost performance is to do a backup, reformat, and restore
operation.

 - Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#647245: e2fsprogs: 2GiB volume can't be formated on 32bit ports.

2011-11-10 Thread Ted Ts'o
tag 647245 +pending
thanks

On Tue, Nov 01, 2011 at 01:23:09AM +0100, Samuel Thibault wrote:
 Samuel Thibault, le Tue 01 Nov 2011 01:16:58 +0100, a écrit :
  Package: e2fsprogs
  Version: 1.42~WIP-2011-10-16-1
  Severity: important
 
 Actually that might even warrant a serious severity, as nowadays you
 can't do much with a 2GiB volume.

It only applies to 2GB files.  If it's on a disk device, it works
fine.  (Or otherwise a lot more people would have been screaming.  :-)

 - Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644792: e2fsprogs [filefrag]: filefrag gets stuck if -v option not specified

2011-10-09 Thread Ted Ts'o
tags 644792 +pending
thanks

On Sun, Oct 09, 2011 at 02:26:20AM -0400, Chris Lawrence wrote:
 
 filefrag seems to get stuck (if -v is not specified) repeatedly
 calling the FS_IOC_FIEMAP ioctl in the do..while loop.
 
 I suspect this may have to do with the fix for #631498.  It looks like
 the changes from Ibragimov Rinat were only partially applied, which
 means that count is still set to 0 when -v is not specified.  Applying
 the first part of his patch from
 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=631498#17 appears to
 fix the problem.

Oops, thanks for noticing this.  You were absolutely right on what
happened.  I've applied the missing patch hunk.

   - Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644584: e2fsprogs: fsck.ext4 failed to run at boot time. causing boot failure

2011-10-07 Thread Ted Ts'o
retitle 644425 undefined symbol in /sbin/e2fsck caused by missing dependency
priority 644584 important
merge 644425 644584
thanks

On Fri, Oct 07, 2011 at 03:28:32PM +0800, Yafan Zhao wrote:
 Package: e2fsprogs
 Version: 1.42~WIP-2011-10-05-1
 Severity: grave
 Justification: renders package unusable
 
 Dear Maintainer,
 
 After upgrade e2fsprogs and e2fslibs to e2fslibs_1.42~WIP-2011-10-05-1 and
 e2fsprogs_1.42~WIP-2011-10-05-1, system failed to boot.
 It is clear that the problem is within fsck.ext4, which failed to check file
 system and the file system was mounted read-only.
 
 In rescue mode (using init=/bin/bash in grub option), when running
 fsck.ext4,
 the following error message was printed:
 fsck.ext4 undefined symbol : ste_com_err_gettext
 
 Downgraing  e2fslibs and e2fsprogs to e2fslibs_1.41.12-4stable1 and
 e2fsprogs_1.41.12-4stable1 solved the problem.

Upgraded libcom_err to a 1.42~WIP-2011-10-05-1 would have also fixed
the problem.  The issue was a missing dependency that I will be
addressing in the next version (coming soon!), which will get this
fixed.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644502: e2fsprogs: FTBFS on hurd-i386 (and kfreebsd-any)

2011-10-06 Thread Ted Ts'o
tags 644502 +pending
thanks

On Thu, Oct 06, 2011 at 02:37:41PM +0200, Svante Signell wrote:
 
 The patch inlined below fixes the remaining FTBFS problems for
 GNU/Hurd. 
 
 It probably fixes the build problems for GNU/kFreeBSD too. The QIF_*
 stuff is only used for quota_v2 and kfree seems to have version quota_v1
 as their quota.h does not have these defined. For kfreebsd-* quota.h is
 at ufs/ not sys/ so the test below also applies to this architecture.
 From the latest build log quotactl is found, and that function is
 defined in quota.h.

Thanks, I already have the following checked into the git tree to
address that problem (which I had noticed by checking the buildd logs).

I'm waiting for clarification from the mips folks about how to address
the remaining MIPS build failure before uploading a new updated package...

It's good to know that this fixes the last remaining problem with
Hurd.  BTW, could you confirm that on a hurd system the mke2fs.conf
file which is included has a default inode_size of 128 bytes, to
address #629355?  Thanks!!

- Ted

commit b5ba6f5b9da9d4e3d6f52ef9470ec12a161b1a7f
Author: Theodore Ts'o ty...@mit.edu
Date:   Wed Oct 5 13:26:59 2011 -0400

libquota: remove flag argument to commit_dquot()

The flag parameter wasn't being used, and using it meant that we had
to define the COMMIT_* flags, which relied on the QIF_* flags being
present.  Removing this allows for increased portability.

Signed-off-by: Theodore Ts'o ty...@mit.edu

diff --git a/lib/quota/mkquota.c b/lib/quota/mkquota.c
index 35cac66..5440003 100644
--- a/lib/quota/mkquota.c
+++ b/lib/quota/mkquota.c
@@ -127,7 +127,7 @@ static void write_dquots(dict_t *dict, struct quota_handle 
*qh)
if (dq) {
dq-dq_h = qh;
update_grace_times(dq);
-   qh-qh_ops-commit_dquot(dq, COMMIT_ALL);
+   qh-qh_ops-commit_dquot(dq);
}
}
 }
diff --git a/lib/quota/quotaio.h b/lib/quota/quotaio.h
index 333a59f..282b543 100644
--- a/lib/quota/quotaio.h
+++ b/lib/quota/quotaio.h
@@ -101,13 +101,6 @@ struct dquot {
struct util_dqblk dq_dqb;   /* Parsed data of dquot */
 };
 
-/* Flags for commit function (have effect only when quota in kernel is
- * turned on) */
-#define COMMIT_USAGE QIF_USAGE
-#define COMMIT_LIMITS QIF_LIMITS
-#define COMMIT_TIMES QIF_TIMES
-#define COMMIT_ALL (COMMIT_USAGE | COMMIT_LIMITS | COMMIT_TIMES)
-
 /* Structure of quotafile operations */
 struct quotafile_ops {
/* Check whether quotafile is in our format */
@@ -123,7 +116,7 @@ struct quotafile_ops {
/* Read dquot into memory */
struct dquot *(*read_dquot) (struct quota_handle *h, qid_t id);
/* Write given dquot to disk */
-   int (*commit_dquot) (struct dquot *dquot, int flag);
+   int (*commit_dquot) (struct dquot *dquot);
/* Scan quotafile and call callback on every structure */
int (*scan_dquots) (struct quota_handle *h,
int (*process_dquot) (struct dquot *dquot,
diff --git a/lib/quota/quotaio_v2.c b/lib/quota/quotaio_v2.c
index 35512c0..7c9e4f7 100644
--- a/lib/quota/quotaio_v2.c
+++ b/lib/quota/quotaio_v2.c
@@ -25,7 +25,7 @@ static int v2_init_io(struct quota_handle *h);
 static int v2_new_io(struct quota_handle *h);
 static int v2_write_info(struct quota_handle *h);
 static struct dquot *v2_read_dquot(struct quota_handle *h, qid_t id);
-static int v2_commit_dquot(struct dquot *dquot, int flags);
+static int v2_commit_dquot(struct dquot *dquot);
 static int v2_scan_dquots(struct quota_handle *h,
  int (*process_dquot) (struct dquot *dquot,
char *dqname));
@@ -285,7 +285,7 @@ static struct dquot *v2_read_dquot(struct quota_handle *h, 
qid_t id)
  * became fake one and user has no blocks.
  * User can process use 'errno' to detect errstr.
  */
-static int v2_commit_dquot(struct dquot *dquot, int flags)
+static int v2_commit_dquot(struct dquot *dquot)
 {
struct util_dqblk *b = dquot-dq_dqb;
 



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#644425: e2fsprogs: undefined symbol in fsck.ext4

2011-10-05 Thread Ted Ts'o
On Wed, Oct 05, 2011 at 08:59:38PM +0200, Maarten De Munck wrote:
 Package: e2fsprogs
 Version: 1.42~WIP-2011-10-05-1
 Severity: important
 
 fsck.ext4 fails with error: fsck.ext4: symbol lookup error: fsck.ext4:
 undefined symbol: set_com_err_gettext. Since this happens on the root
 fsck at boot, the system is left in maintenance mode.
 
 The error dos not occur with e2fsprogs 1.42~WIP-2011-09-25-1 in
 combination with libcomerr2 1.42~WIP-2011-07-02-01 (tested).
 
 The error is solved by upgrading libcomerr2 to version
 1.42~WIP-2011-10-05-1, so I suppose this should be changed in the
 package requirements (tested).

Yes, this is a dependency problem; we need to bump the requirement to
libcomerr2 be 1.42~WIP-2011-10-05-1.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#451388: resize2fs: Invalid argument While trying to add group #38

2011-10-03 Thread Ted Ts'o
On Sun, Oct 02, 2011 at 11:48:44PM -0400, Daniel Kahn Gillmor wrote:
  Any chance the resize2fs was a 32-bit binary by any chance?  
 
 yes, indeed.  this is a ppc64 kernel and a 32-bit powerpc everything-else.

Stupid question.  Can you tell me what the sizeof(unsigned long) is on
ppc64 and ppc32?   I think that might be the problem...

Thanks,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#451388: resize2fs: Invalid argument While trying to add group #38

2011-10-03 Thread Ted Ts'o
On Mon, Oct 03, 2011 at 12:46:52PM -0400, Daniel Kahn Gillmor wrote:
 On Mon, 3 Oct 2011 12:04:19 -0400, Ted Ts'o ty...@mit.edu wrote:
  Stupid question.  Can you tell me what the sizeof(unsigned long) is on
  ppc64 and ppc32?   I think that might be the problem...
 
 0 abc@tut:~/src/test$ gcc -o test test.c -m32  ./test
 4
 0 abc@tut:~/src/test$ gcc -o test test.c -m64  ./test
 8
 0 abc@tut:~/src/test$ 

Yep, that's the problem.  We're not taking that into account for the
EXT4_IOC_GROUP_EXTENT ioctl, which would explain why we're then
getting the last group not full error.  

Hmm... by any chance was there a will only finish group ( blocks,
ddd new) warning message in the dmesg, before that last group not
full error?

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#451388: resize2fs: Invalid argument While trying to add group #38

2011-10-03 Thread Ted Ts'o
On Mon, Oct 03, 2011 at 01:34:57PM -0400, Daniel Kahn Gillmor wrote:
 
 Does this bug need to be reassigned to the kernel or is it in
 e2fsprogs?  Do you have a patch you want me to try?  (it'd be much
 easier for me to try a patched e2fsprogs than a patched kernel on
 remote hardware)

Actually looking at this some more, I think it might actually be an
e2fsprogs bug.  Can you try out the following patch?  It applies
against the 1.42-WIP-1001 release of e2fsprogs.  Or grab the next
branch from git://github.com/tytso/e2fsprogs.git.

  - Ted


commit 200569608fc6e33f6546c17999f14fb5dbb0b9b5
Author: Theodore Ts'o ty...@mit.edu
Date:   Mon Oct 3 20:35:19 2011 -0400

resize2fs: fix on-line resizing

On-line resizing has been broken in the 1.42 series for two reasons:
(a) the call to the new EXT4_IOC_RESIZE_FS ioctl checked for ENOTTY to
indicate that the ioctl does not exist, when in fact EINVAL is what is
returned if the ioctl doesn't exist.  (b) resize2fs was passing in a
pointer to a 64-bit value, when the ioctl expected a 32-bit value.
This was OK on little-endian systems, but it wouldn't work at all on
big-endian systems.

Fix both problems.

Addresses-Debian-Bug: #451388

Signed-off-by: Theodore Ts'o ty...@mit.edu

diff --git a/resize/online.c b/resize/online.c
index e1d05b7..bbe684a 100644
--- a/resize/online.c
+++ b/resize/online.c
@@ -19,6 +19,8 @@
 
 extern char *program_name;
 
+#define MAX_32_NUM unsigned long long) 1)  32) - 1)
+
 errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
   blk64_t *new_size, int flags EXT2FS_ATTR((unused)))
 {
@@ -31,7 +33,7 @@ errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
errcode_t   retval;
double  percent;
dgrp_t  i;
-   blk64_t size;
+   blk_t   size;
int fd, overhead;
int use_old_ioctl = 1;
 
@@ -69,10 +71,8 @@ errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
exit(1);
}
 
-   size=ext2fs_blocks_count(sb);
-
if (ioctl(fd, EXT4_IOC_RESIZE_FS, new_size)) {
-   if (errno != ENOTTY) {
+   if (errno != EINVAL) {
if (errno == EPERM)
com_err(program_name, 0,
_(Permission denied to resize filesystem));
@@ -87,6 +87,14 @@ errcode_t online_resize_fs(ext2_filsys fs, const char *mtpt,
return 0;
}
 
+   if ((ext2fs_blocks_count(sb)  MAX_32_NUM) ||
+   (*new_size  MAX_32_NUM)) {
+   com_err(program_name, 0,
+   _(Kernel does not resizing a file system this large));
+   exit(1);
+   }
+   size = ext2fs_blocks_count(sb);
+
if (ioctl(fd, EXT2_IOC_GROUP_EXTEND, size)) {
if (errno == EPERM)
com_err(program_name, 0,



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#451388: resize2fs: Invalid argument While trying to add group #38

2011-10-02 Thread Ted Ts'o
On Sun, Oct 02, 2011 at 05:00:51PM -0400, Daniel Kahn Gillmor wrote:
 Performing an on-line resize of /dev/mapper/vg_tut0-usr to 1572864 (4k)
 blocks.
 resize2fs: Invalid argument While trying to add group #38
 1 tut:~#
 
 let me know if there is more information i can provide.

Could you check /var/log/dmesg* log files to see if the kernel printed
any explanatory messages around the time when you attempted to run
resize2fs?  That might shed some light as to what was going on.

Thanks,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#451388: resize2fs: Invalid argument While trying to add group #38

2011-10-02 Thread Ted Ts'o
On Sun, Oct 02, 2011 at 10:30:47PM -0400, Daniel Kahn Gillmor wrote:
 On 10/02/2011 09:41 PM, Theodore Tso wrote:
  Oh interesting….  I'm not sure whether this is a kernel bug or a resize2fs 
  bug.
  
  What version of the kernel are you using?   And what architecture?  x86_64? 
   i386? 
 
 This is a powerpc G5, running debian's powerpc64 3.0
 (linux-image-3.0.0-1-powerpc64, version 3.0.0-3)

Any chance the resize2fs was a 32-bit binary by any chance?  

This message:

 Oct  2 16:43:39 tut kernel: [  168.613200] ioctl32(resize2fs:2469):
Unknown cmd fd(4) cmd(80286608){t:'f';sz:40} arg(ffcfc210) on /usr

is very interesting and suggests the problem is in the 32-64 bit
compatibility code in the kernel, and explains why most other people
aren't seeing it.

Is this failure something that happens reliably, in that on this
machine, online resizing isn't working pretty much for any file
system?

   - Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#546388: e2fsprogs: Odd filesystem labels confuse blkid

2011-09-30 Thread Ted Ts'o
reassign 546388 util-linux
thanks

Sigh, one more time, with feeling

 The blkid library is now the responsibility of the util-linux package.
 I *think* this issue is already addressed in the revmaped version of
 blkid found in util-linux, but I'm not 100% sure, so I'm reassigning it
 to the util-linux package for its maintainers to confirm whether it
 should be closed as already fixed.


- Ted




-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#634883: e2fsprogs: Please explain in mke2fs.conf(5) what enabled means

2011-09-30 Thread Ted Ts'o
tags 634883 +pending
thanks

On Wed, Jul 20, 2011 at 09:23:51PM +0200, Helge Kreutzmann wrote:
 
 The man page explains the various options and several times says if
 enabled (e.g. for enable_periodic_fsck). From the shipped file I
 assume that enabled means a numeric 1 and disabled a numeric 0?

Yes, that's correct.  Thanks for pointing out the man page was less
than clear here.  I've fixed this for the next release.

  - Ted

commit 900ea6129541ab9319986c4960ee7335c13830c8
Author: Theodore Ts'o ty...@mit.edu
Date:   Fri Sep 30 18:32:44 2011 -0400

mke2fs.conf.5: clarify the man page regarding boolean relations

Explain more clearly how boolean relations in the mke2fs.conf file are
parsed, and which config parameters are in fact boolean relations.

Addresses-Debian-Bug: #634883

Signed-off-by: Theodore Ts'o ty...@mit.edu

diff --git a/misc/mke2fs.conf.5.in b/misc/mke2fs.conf.5.in
index b2c7a57..636a0f1 100644
--- a/misc/mke2fs.conf.5.in
+++ b/misc/mke2fs.conf.5.in
@@ -59,6 +59,11 @@ apply: \en (for the newline character),
 \et (for the tab character), \eb (for the backspace character), 
 and \e\e (for the backslash character).
 .P
+Some relations expect a boolean value.  The parser is quite liberal on
+recognizing ``yes'', '`y'', ``true'', ``t'', ``1'', ``on'', etc. as a
+boolean true value, and ``no'', ``n'', ``false'', ``nil'', ``0'',
+``off'' as a boolean false value.
+.P
 The following stanzas are used in the 
 .I mke2fs.conf
 file.  They will be described in more detail in future sections of this
@@ -108,8 +113,8 @@ to
 .BR mke2fs (8).
 .TP
 .I enable_periodic_fsck
-This relation specifies whether periodic filesystem checks should be
-enforced at boot time.  If enabled, checks will be forced every
+This boolean relation specifies whether periodic filesystem checks should be
+enforced at boot time.  If set to true, checks will be forced every
 180 days, or after a random number of mounts.  These values may
 be changed later via the
 .B -i
@@ -119,7 +124,7 @@ command-line options to
 .BR tune2fs (8).
 .TP
 .I force_undo
-This relation, if set to a boolean value of true, forces
+This boolean relation, if set to a value of true, forces
 .B mke2fs
 to always try to create an undo file, even if the undo file might be
 huge and it might extend the time to create the filesystem image
@@ -341,7 +346,7 @@ This relation specifies the default blocksize if the user 
does not
 specify a blocksize on the command line.
 .TP
 .I lazy_itable_init
-This relation is a boolean which specifies whether the inode table should 
+This boolean relation specifies whether the inode table should 
 be lazily initialized.  It only has meaning if the uninit_bg feature is
 enabled.  If lazy_itable_init is true and the uninit_bg feature is
 enabled,  the inode table will
@@ -392,7 +397,7 @@ by
 on a per-filesystem type basis.
 .TP
 .I discard
-This relation is a boolean which specifies whether the
+This boolean relation specifies whether the
 .BR mke2fs (8)
 should attempt to discard device prior to filesystem creation.
 .TP



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#631498: e2fsprogs: filefrag should report adjacent extents as one

2011-09-30 Thread Ted Ts'o
tag 631498 +pending
thanks

On Fri, Jun 24, 2011 at 04:02:23PM +0400, Ibragimov Rinat wrote:
  When filefrag uses FIEMAP ioctl its logic differs for ordinary and verbose 
  (-v) modes. ext4 returns extent on every 32768 block so on large files it is
  possible that `filefrag large-file' tells about 4 extents while 
  `filefrag -v large-file' finds only one.
 
  Also when I tried to use generic_block_fiemap function to add FIEMAP for 
  reiserfs, every block was reported as a new extent resulting in thousands
  extents for continuous files.
 
  I think filefrag should merge adjacent extents even when -v is not
  specified.

Thanks for reporting this bug.  I agree, and I've applied a fix for
the next release of e2fsprogs.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#520985: [nieh...@web.de: typo: e2fsck abgebrochhen]

2011-09-30 Thread Ted Ts'o
Hi, since you are the last translator for the German e2fsprogs.pot
file, I'm forwarding this to you.  Note that there will be a new
e2fsprogs.pot published soon, for the upcoming e2fsprogs 1.42 release.

If you could include this fix in the next de.po update for e2fsprogs,
I would greatly appreciate it.  Thanks!!

- Ted
---BeginMessage---
Package: e2fsprogs
Version: 1.41.3-1
Severity: minor
Tags: l10n


fsck.ext3 has a typo in the german translation: 

,
| crystalline:/home/niehaus# fsck.ext3 -fn /dev/sda1
| e2fsck 1.41.3 (12-Oct-2008)
| Durchgang 1: Prüfe Inodes, Blocks, und Größen

I press Strg-C to interrupt it: 

^C

| USB-BACKUP: e2fsck abgebrochhen.
`

Should be: e2fsck abgebrochen.



-- System Information:
Debian Release: 5.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-1-686 (SMP w/1 CPU core)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages e2fsprogs depends on:
ii  e2fslibs  1.41.3-1   ext2 filesystem libraries
ii  libblkid1 1.41.3-1   block device id library
ii  libc6 2.7-18 GNU C Library: Shared libraries
ii  libcomerr21.41.3-1   common error description library
ii  libss21.41.3-1   command-line interface parsing lib
ii  libuuid1  1.41.3-1   universally unique id library

e2fsprogs recommends no packages.

Versions of packages e2fsprogs suggests:
pn  e2fsck-static none (no description available)
ii  gpart 0.1h-4.1   Guess PC disk partition table, fin
pn  partednone (no description available)

-- no debconf information



---End Message---


Bug#620659: [glo...@debian.org: e2fsprogs: strange French translation in resize2fs]

2011-09-30 Thread Ted Ts'o
Hi, since you're the last translator for the French translation file
for e2fsprogs.pot, I'm forwarding this to you.  Note that there will
shortly be a new e2fsprogs.pot file published for the upcoming 1.42
release.

If you could consider this bug report and fix translation if
appropriate in the next fr.po update for e2fsprogs, I would greatly
appreciate it.

Many thanks!!

- Ted
---BeginMessage---
Package: e2fsprogs
Version: 1.41.12-2
Severity: minor
Tags: l10n

Hello,

When resizing a filesystem using resize2fs, the French message reads:

  En train de retailler le système de fichiers sur [...]

retailler doesn't look right... especially when the fs is growing!
(re-)tailler is always shrinking in French. redimensionner is
neutral w.r.t. the kind of resizing, and would be better here.


Cheers,

-- 
Stéphane


-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.utf8, LC_CTYPE=fr_FR.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages e2fsprogs depends on:
ii  e2fslibs  1.41.12-2  ext2/ext3/ext4 file system librari
ii  libblkid1 2.17.2-9.1 block device id library
ii  libc6 2.11.2-11  Embedded GNU C Library: Shared lib
ii  libcomerr21.41.12-2  common error description library
ii  libss21.41.12-2  command-line interface parsing lib
ii  libuuid1  2.17.2-9.1 Universally Unique ID library
ii  util-linux2.17.2-9.1 Miscellaneous system utilities

e2fsprogs recommends no packages.

Versions of packages e2fsprogs suggests:
pn  e2fsck-static none (no description available)
pn  gpart none (no description available)
pn  partednone (no description available)

-- no debconf information



---End Message---


Bug#627535: e2fsprogs: FTBFS with DEB_BUILD_OPTIONS=noopt nostrip

2011-09-25 Thread Ted Ts'o
tags 627535 +pending
thanks

On Sat, May 21, 2011 at 09:23:42PM +0300, Sami Liedes wrote:
 Package: e2fsprogs
 Version: 1.41.12-4
 Severity: normal
 
 e2fsprogs fails to build if DEB_BUILD_OPTIONS contains nostrip

Thanks for reporting this.  I've fixed it in my sources and it will be
in the next release.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#642193: 'man e2fsck' typo: exacly

2011-09-20 Thread Ted Ts'o
tag 642193 +pending
thanks

On Tue, Sep 20, 2011 at 01:33:38AM -0400, A. Costa wrote:
 
 Found a typo in '/usr/share/man/man8/e2fsck.8.gz', see attached '.diff'.

Thanks for reporting this!  I've fixed it in my sources and it will be
in the next release.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#614082: e2fsprogs: fsck.ext4 fails with 'Memory allocation failed' message

2011-09-19 Thread Ted Ts'o
retitle 614082 e2fsck dies with an OOM on bad triple-indirect block in a dir 
inode
thanks

On Sat, Feb 19, 2011 at 06:09:38PM +0300, George Shuklin wrote:
 Error storing directory block information (inode=169246423, block=0, 
 num=3966024): Memory allocation failed

Apologies for not looking at this sooner.  I had assumed this was the
standard user was trying to check a too-big file system with an
32-bit userspace problem, and then I got busy and it dropped off the
end of my inbox.

In fact it's a much more interesting problem.  What happened was that
you got unlucky and trash got written into your inode table.  One of
the inodes that got overwritten had the directory bit set, and the
extents flag was _not_ set.  So the i_blocks field was interpreted as
a series of blocks.  Many of those i_blocks entries were garbage, and
were cleared, but the triple indirect block could be interpreted as a
valid block number, so we started iterating over all of the double
indirection blocks.  To make sure that the directory doesn't have
holes in it, e2fsck then started allocating entries to keep track of
all of this via ext2fs_add_dir_block2(), and this is what caused the
memory overflow.

To fix this what we need to do is to notice when an inode looks
insane, and ask the user if they are willing to just nuke it, as
opposed to trying to fix all of the individual things that are wrong
with it.

The way to work around this problem should it occur again is to note
the inode number, and then zap it using debugfs:

debugfs -w /dev/md1
debugfs: clri 169246423
debugfs: quit

Then e2fsck should be able to complete its work.

- Ted




-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#629883: e2fsprogs: FTBFS: parse.c:56:20: error: 'errno' undeclared (first use in this function)

2011-09-19 Thread Ted Ts'o
tag 629883 +pending
thanks

I recently was able to reproduce this.  It looks like some shellutil
program used by configure has a 4k line length problem.  The problem
doesn't show up on Ubuntu 10.04/x86_64, and it doesn't show up in my
sid/i386 chroot (which is what I normally upload to the ftp archives)
and apparently it doesn't show up in the official x86_64/buildd's

But it did show up in your (Didier's) test builds, and it recently
popped for me as well when I created a sid/x86_64 chroot to do some
unrelated development/test work.  The problem is that there is this
line in MCONFIG.in:

DEFS = @DEFS@

which gets pulled into all of the make files.  @DEFS@ is about 4200
bytes.  This resulted in a corrupted line in the generated MCONFIG
file, and hence in all of the Makefiles.  This caused all of the
autoconf-generated declarations (e.g., -DHAVE_ERRNO_H, et. al) to get
lost, and that's what caused the 'errno' undeclared compilation error.

Why the problem doesn't show up the 32-bit sid environment, but only
the 64-bit sid environment (and as a regression to boot since Ubuntu
10.04 doesn't exhibit this bug) is an interesting one, but I'll leave
that for another day or another developer to figure out.  I've worked
around the problem in e2fsprogs by using a config.h file instead of
passing all of the defines on the command-line -- a better solution
anyway.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#632169: Please transition e2fsprogs for multiarch

2011-09-18 Thread Ted Ts'o
On Thu, Jun 30, 2011 at 09:17:58AM +0100, Steve Langasek wrote:
 Please find attached a patch to e2fsprogs to transition it to use of the
 multiarch library paths as described at
 http://wiki.debian.org/Multiarch/Implementation.  This patch has been
 applied and is being used successfully in Ubuntu 11.04, and should be safe
 to apply in Debian now that multiarch has been bootstrapped there.

Note, your patches appear cause the following Lintian error:

E: libcomerr2-dbg: binary-with-bad-dynamic-table 
usr/lib/x86_64-linux-gnu/debug/lib/x86_64-linux-gnu/libcom_err.so.2.1
N: 
N:This appears to be an ELF file but objdump -T cannot parse it. If it is
N:external debugging symbols for another file, it should be installed
N:under /usr/lib/debug.
N:
N:Severity: serious, Certainty: possible
N:
N:Check: binaries, Type: binary, udeb
N: 

This is caused by files showing up in 

   /usr/lib/x86_64-linux-gnu/debug/lib/x86_64-linux-gnu/libcom_err.so.2.1

instead of

   /usr/lib/debug/lib/x86_64-linux-gnu/libcom_err.so.2.1

The multiarch proposal seems to be vague on some of these details.
And I'm really worred about whether tools like gdb, perf, and other
tools that expect to find the debugging files will find them if
/usr/lib/triplet/debug is used instead of /usr/lib/debug.

My current thinking is to *not* enable move these files from
/usr/lib/debug, since from my testing both gdb and lintian don't know
about this change (for now).

Pkgconfig seems to know about /usr/lib/triplet/pkgconfig, and
lintian doesn't complain, I'll move the .pc files for now.

- Ted





-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#632169: Please transition e2fsprogs for multiarch

2011-09-18 Thread Ted Ts'o
Hi Steve,

On Thu, Jun 30, 2011 at 09:17:58AM +0100, Steve Langasek wrote:
 Please find attached a patch to e2fsprogs to transition it to use of the
 multiarch library paths as described at
 http://wiki.debian.org/Multiarch/Implementation.  This patch has been
 applied and is being used successfully in Ubuntu 11.04, and should be safe
 to apply in Debian now that multiarch has been bootstrapped there.

If you have time to validate the changes I made to e2fsprogs to
support multiarch, I would greatly appreciate it.  I couldn't just use
your patch because I need to support Ubuntu 10.04 (and Debian Stable)
as well as Debian Unstable systems.

You can get and build my latest e2fsprogs tree as follows:

git clone git://github.com/tytso/e2fsprogs.git
cd e2fsprogs
git checkout -b next origin/next
./debian/rules
fakeroot dpkg-buildpackage 

The above should work on Ubuntu LTS, Debian Stable, Debian Unstable,
as well as whatever prelease Ubuntu system you are working on.

Let me know if I screwed anything up.  :-)

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#641838: FTBFS: struct ext2_group_desc missing some members

2011-09-16 Thread Ted Ts'o
On Fri, Sep 16, 2011 at 05:42:26PM +, Thorsten Glaser wrote:
 Source: e2fsprogs
 Version: 1.42~WIP-2011-09-16-1
 Severity: serious
 Justification: fails to build from source (but built successfully in the past)
 
 e2fsprogs stopped building with the latest upload.
 Relevant build log excerpt:
 
 CC /tmp/buildd/e2fsprogs-1.42~WIP-2011-09-16/lib/ext2fs/swapfs.c
 /tmp/buildd/e2fsprogs-1.42~WIP-2011-09-16/lib/ext2fs/swapfs.c: In function 
 'ext2fs_swap_group_desc2':
 /tmp/buildd/e2fsprogs-1.42~WIP-2011-09-16/lib/ext2fs/swapfs.c:135: error: 
 'struct ext2_group_desc' has no member named 'bg_exclude_bitmap_hi'

Ack, thanks, I'll get this fixed.

 By the way, hiding build command lines like this (as CC) is
 against buildd admin policy, I think. Please consider fixing
 that as well.

Can you point me at the relevant policy, out of curiosity?

Thanks, regards,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#641838: FTBFS: struct ext2_group_desc missing some members

2011-09-16 Thread Ted Ts'o
On Fri, Sep 16, 2011 at 07:47:46PM +, Thorsten Glaser wrote:
 Not really, I read it “somewhere”, while trying to familiarise
 myself with buildds, but didn’t bookmark this specially (as it
 matches what I think is right), see
 http://lists.debian.org/debian-68k/2011/09/msg00035.html

Is there a reliable way that the debian/rules file can determine that
it's running in a buildd?  The reason for this is that when you're
monitoring the build when it's happening in a window, make V=1 is
darned annoying  although I'll agree it's useful when you're
trying to debug what's going on after a buildd failure.

After all, we're talking about the difference of this:

  CC ../../e2fsck/pass1.c

and this:

gcc -c -I../lib -I../../lib  -DLOCALEDIR=\/usr/share/locale\ 
-DROOT_SYSCONFDIR=\/etc\ -DPACKAGE_NAME=\\ -DPACKAGE_TARNAME=\\ 
-DPACKAGE_VERSION=\\ -DPACKAGE_STRING=\\ -DPACKAGE_BUGREPORT=\\ 
-DPACKAGE_URL=\\ -DHAVE_DLOPEN=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 
-DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 
-DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 
-DENABLE_HTREE=1 -DCONFIG_TESTIO_DEBUG=1 -DTLS=__thread -DUSE_UUIDD=1 
-DPACKAGE=\e2fsprogs\ -DVERSION=\0.14.1\ -DHAVE_LONG_LONG=1 
-DHAVE_LONG_DOUBLE=1 -DHAVE_WCHAR_T=1 -DHAVE_WINT_T=1 
-DHAVE_INTTYPES_H_WITH_UINTMAX=1 -DHAVE_STDINT_H_WITH_UINTMAX=1 
-DHAVE_INTMAX_T=1 -DHAVE_POSIX_PRINTF=1 -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 
-DHAVE_STDLIB_H=1 -DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_GETPAGESIZE=1 
-DHAVE_MMAP=1 -DINTDIV0_RAISES_SIGFPE=1 -DHAVE_UNSIGNED_LONG_LONG=1 
-DHAVE_UINTMAX_T=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDINT_H=1 
-DHAVE_ARGZ_H=1 -DHAVE_LIMITS_H=1 -DHAVE_LOCALE_H=1 -DHAVE_NL_TYPES_H=1 
-DHAVE_MALLOC_H=1 -DHAVE_STDDEF_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 
-DHAVE_UNISTD_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_ASPRINTF=1 -DHAVE_FWPRINTF=1 
-DHAVE_GETCWD=1 -DHAVE_GETEGID=1 -DHAVE_GETEUID=1 -DHAVE_GETGID=1 
-DHAVE_GETUID=1 -DHAVE_MEMPCPY=1 -DHAVE_MUNMAP=1 -DHAVE_PUTENV=1 
-DHAVE_SETENV=1 -DHAVE_SETLOCALE=1 -DHAVE_SNPRINTF=1 -DHAVE_STPCPY=1 
-DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRTOUL=1 -DHAVE_TSEARCH=1 
-DHAVE_WCSLEN=1 -DHAVE___ARGZ_COUNT=1 -DHAVE___ARGZ_STRINGIFY=1 
-DHAVE___ARGZ_NEXT=1 -DHAVE___FSETLOCKING=1 -DHAVE_DECL__SNPRINTF=0 
-DHAVE_DECL__SNWPRINTF=0 -DHAVE_DECL_FEOF_UNLOCKED=1 
-DHAVE_DECL_FGETS_UNLOCKED=0 -DHAVE_DECL_GETC_UNLOCKED=1 -DHAVE_ICONV=1 
-DICONV_CONST= -DHAVE_LANGINFO_CODESET=1 -DHAVE_LC_MESSAGES=1 -DENABLE_NLS=1 
-DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DHAVE_DIRENT_H=1 -DHAVE_ERRNO_H=1 
-DHAVE_EXECINFO_H=1 -DHAVE_GETOPT_H=1 -DHAVE_MALLOC_H=1 -DHAVE_MNTENT_H=1 
-DHAVE_PATHS_H=1 -DHAVE_SEMAPHORE_H=1 -DHAVE_SETJMP_H=1 -DHAVE_SIGNAL_H=1 
-DHAVE_STDARG_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_TERMIOS_H=1 
-DHAVE_TERMIO_H=1 -DHAVE_UNISTD_H=1 -DHAVE_UTIME_H=1 -DHAVE_LINUX_FALLOC_H=1 
-DHAVE_LINUX_FD_H=1 -DHAVE_LINUX_MAJOR_H=1 -DHAVE_NETINET_IN_H=1 
-DHAVE_SYS_FILE_H=1 -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_MMAN_H=1 
-DHAVE_SYS_PRCTL_H=1 -DHAVE_SYS_QUEUE_H=1 -DHAVE_SYS_RESOURCE_H=1 
-DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_SOCKET_H=1 -DHAVE_SYS_STAT_H=1 
-DHAVE_SYS_SYSCALL_H=1 -DHAVE_SYS_SYSMACROS_H=1 -DHAVE_SYS_TIME_H=1 
-DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_UN_H=1 -DHAVE_SYS_WAIT_H=1 -DHAVE_SYS_MOUNT_H=1 
-DHAVE_NET_IF_H=1 -DHAVE_VPRINTF=1 -DHAVE_RECLEN_DIRENT=1 -DHAVE_TYPE_SSIZE_T=1 
-DHAVE_LSEEK64_PROTOTYPE=1 -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=8 
-DSIZEOF_LONG_LONG=8 -DHAVE_INTTYPES_H=1 -DHAVE_INTPTR_T=1 -DHAVE_GETRUSAGE=1 
-DHAVE_LLSEEK=1 -DHAVE_LSEEK64=1 -DHAVE_OPEN64=1 -DHAVE_FSTAT64=1 
-DHAVE_FTRUNCATE64=1 -DHAVE_STRTOULL=1 -DHAVE_STRCASECMP=1 -DHAVE_SRANDOM=1 
-DHAVE_JRAND48=1 -DHAVE_FCHOWN=1 -DHAVE_MALLINFO=1 -DHAVE_FDATASYNC=1 
-DHAVE_STRNLEN=1 -DHAVE_STRPTIME=1 -DHAVE_STRDUP=1 -DHAVE_SYSCONF=1 
-DHAVE_PATHCONF=1 -DHAVE_POSIX_MEMALIGN=1 -DHAVE_MEMALIGN=1 -DHAVE_VALLOC=1 
-DHAVE___SECURE_GETENV=1 -DHAVE_PRCTL=1 -DHAVE_MMAP=1 -DHAVE_UTIME=1 
-DHAVE_SETRESUID=1 -DHAVE_SETRESGID=1 -DHAVE_USLEEP=1 -DHAVE_NANOSLEEP=1 
-DHAVE_GETDTABLESIZE=1 -DHAVE_GETRLIMIT=1 -DHAVE_SYNC_FILE_RANGE=1 
-DHAVE_POSIX_FADVISE=1 -DHAVE_FALLOCATE=1 -DHAVE_FALLOCATE64=1 
-DHAVE_BLKID_PROBE_GET_TOPOLOGY=1 -DHAVE_MBSTOWCS=1 -DHAVE_BACKTRACE=1 
-DHAVE_SEM_INIT=1 -DHAVE_EXT2_IOCTLS=1  -g -DRESOURCE_TRACK -I.
../../e2fsck/e2fsck.c -o e2fsck.o

Multiplied by several thousand lines.   :-(

- Ted



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#636418: e2fslibs: New version breaks dump (source and binary)

2011-09-15 Thread Ted Ts'o
tags 636418 +pending
thanks

On Wed, Aug 03, 2011 at 12:07:29AM +0100, Mark Wooding wrote:
 Package: e2fslibs
 Version: 1.42~WIP-2011-07-02-1
 Severity: important
 
 With this version of e2fslibs, dump 0.4b44-1 is a total loss: it fails
 with SIGFPE during pass IV.

Thanks for reporting this!  I made a change to struct fs which caused
dump to have heartburn.  That's an ABI change which shouldn't have
happen.  (But this is why I do WIP releases. :-)

I've fixed the binary ABI compatibility, and also added back the
support for the fragments macros (which ext2/3/4 will never support,
but which whoever originally hacked dump/restore so that it worked
with ext2/3/4 instead of the BSD FFS) so that dump can build against
the 1.42 version of e2fsprogs.

Note however that dump is doing some very sketchy things, and quite
frankly I'm suprised it works with ext4 file systems --- or at least
appears to work. :-P   Someone should really do some verification to
make sure it is really working with ext4.

I can guarantee it won't work on file systems  16TB's, because of how
it's accessing blocks_count variable:

#define sblock  fs
#define fs_fsizeblocksize
#define fs_bsizeblocksize
#define fs_size super-s_blocks_count

You will never find a more wretched hive of scum and villainy.  ;-)

  - Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#641667: /lib/libe2p.so.2: [patch] e2fsprogs/libe2p: tune2fs never recognizes MNTOPT_* mount options

2011-09-14 Thread Ted Ts'o
On Thu, Sep 15, 2011 at 04:07:07AM +0200, Israel G. Lugo wrote:
 
 There's an off-by-one bug in lib/e2p/mntopts.c:e2p_string2mntopt(), both
 in the Debian 1.41.12 version, and the current upstream 1.41.14
 version. It's failing to properly recognize any MNTOPT_* options, which
 means I can't for example do the following:
 
 # tune2fs -o MNTOPT_10 /dev/sda2
 tune2fs 1.41.12 (17-May-2010)
 Invalid mount option set: MNTOPT_10
 
 MNTOPT_10 corresponds to the discard mount option; this particular
 example is from an embedded system running Debian 6.0.2 armv5tel.

Thanks for the fix.  I am the upstream for e2fsprogs, so I'll make
sure it gets into a future release.  As far as getting this backported
into 1.41.12-4stable1, it's a pain in the tuckus to get patches
backported into stable, especially when the package is used by the
installer, and I'm not sure the stable release maintainers would
consider this bug important enough to be worthy of a backport.

After all, I don't think the stable kernel understands
EXT4_DEFM_DISCARD anyway, does it?

Why don't you just compile a newer version of e2fsprogs for stable?
We may never get it into stable release, but it should work just fine
there.  After all, there's a reason Debian Stable is known as Debian
Obsolete.  :-)

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#629883: e2fsprogs: FTBFS: parse.c:56:20: error: 'errno' undeclared (first use in this function)

2011-07-04 Thread Ted Ts'o
fixed 629883 e2fsprogs/1.41.12-4stable1
thanks

On Thu, Jun 09, 2011 at 10:20:22AM +0200, Didier Raboud wrote:
 
 During a rebuild of all packages in sid, your package failed to build on
 amd64.
 
 Relevant part:
  CC /«BUILDDIR»/e2fsprogs-1.41.12/lib/ss/parse.c
  /«BUILDDIR»/e2fsprogs-1.41.12/lib/ss/parse.c: In function 'ss_parse':
  /«BUILDDIR»/e2fsprogs-1.41.12/lib/ss/parse.c:56:20: error: 'errno' 
  undeclared (first use in this function)
  /«BUILDDIR»/e2fsprogs-1.41.12/lib/ss/parse.c:56:20: note: each undeclared 
  identifier is reported only once for each function it appears in

I have no idea how or why this failed, but (a) I always only upload
32-bit i386 packages, and so the original 1.41.12 deb was built using
the autobuilder, (b) we definitely are #including errno.h in parse.c.,
(c) I uploaded a 32-bit binaries for 1.41.12-4stable1, and according to:

http://packages.debian.org/squeeze/libss2

it looks pretty clear that amd64 (as far as all other architectures)
built w/o problems.

So I'm going to declare this problem fixed in 1.41.12-4stable1.  I'm
pretty sure it was fine in 1.41.12-4 (since as I said the amd64 debs
were originally built using the Debian pbuilder systems; I only upload
i386 binaries), but it's not worth trying to debug how or why it
failed when you tried to do the rebuild.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#615998: linux-image-2.6.32-5-xen-amd64: Repeatable kernel BUG at fs/jbd2/commit.c:534 from Postfix on ext4

2011-06-28 Thread Ted Ts'o
  My basic impression is that the use of data=journalled can help
  reduce the risk (slightly) of serious corruption to some kinds of
  databases when the application does not provide appropriate syncs
  or journalling on its own (IE: such as text-based Wiki database files).

Yes, although if the application has index files that have to be
updated at the same time, there is no guarantee that the changes that
survive after a system failure (either a crash or a power fail),
unless the application is doing proper application-level journalling
or some other structured.

 To sum up, the only additional guarantee data=journal offers against
 data=ordered is a total ordering of all IO operations. That is, if you do a
 sequence of data and metadata operations, then you are guaranteed that
 after a crash you will see the filesystem in a state corresponding exactly
 to your sequence terminated at some (arbitrary) point. Data writes are
 disassembled into page-sized  page-aligned sequence of writes for purpose
 of this model...

data=journal can also make the fsync() operation faster, since it will
involver fewer seeks (although it will require a greater write
bandwidth).  Depending on the write bandwidth, you really need to
benchmark things to be sure, though.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#615998: linux-image-2.6.32-5-xen-amd64: Repeatable kernel BUG at fs/jbd2/commit.c:534 from Postfix on ext4

2011-06-27 Thread Ted Ts'o
On Mon, Jun 27, 2011 at 05:30:11PM +0200, Lukas Czerner wrote:
  I've found some. So although data=journal users are minority, there are
  some. That being said I agree with you we should do something about it
  - either state that we want to fully support data=journal - and then we
  should really do better with testing it or deprecate it and remove it
  (which would save us some complications in the code).
  
  I would be slightly in favor of removing it (code simplicity, less options
  to configure for admin, less options to test for us, some users I've come
  across actually were not quite sure why they are using it - they just
  thought it looks safer).

Hmm...  FYI, I hope to be able to bring on line automated testing for
ext4 later this summer (there's a testing person at Google is has
signed up to work on setting this up as his 20% project).  The test
matrix that I have him included data=journal, so we will be getting
better testing in the near future.

At least historically, data=journalling was the *simpler* case, and
was the first thing supported by ext4.  (data=ordered required revoke
handling which didn't land for six months or so).  So I'm not really
that convinced that removing really buys us that much code
simplification.

That being siad, it is true that data=journalled isn't necessarily
faster.  For heavy disk-bound workloads, it can be slower.  So I can
imagine adding some documentation that warns people not to use
data=journal unless they really know what they are doing, but at least
personally, I'm a bit reluctant to dispense with a bug report like
this by saying, oh, that feature should be deprecated.

Regards,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#615998: linux-image-2.6.32-5-xen-amd64: Repeatable kernel BUG at fs/jbd2/commit.c:534 from Postfix on ext4

2011-06-23 Thread Ted Ts'o
On Thu, Jun 23, 2011 at 01:32:48PM -0500, Moffett, Kyle D wrote:
 
 Ted, since this new iteration has no customer data, passwords, keys, or
 any other private data, I'm going to try to get approval to release an
 exact EC2 image of this system for you to test with, including the fake
 data volume that I triggered the problem on.

That would be great!  Approximately how big are the images involved?

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#628536: Heads up: update for e2fsprogs intended for stable-proposed-updates

2011-06-18 Thread Ted Ts'o
On Sat, Jun 18, 2011 at 11:38:07AM +0200, Philipp Kern wrote:
 
 To the normal ftp-master queue with stable as its distribution target in the
 .changes (i.e. the changelog dist bit).  But proposed-updates works equally
 well.

OK, uploaded.  Please let me know if there were any issues/problems.
I need to run to the gate for my next flight, so I won't be able to
respond until late tonight, though.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#628536: Heads up: update for e2fsprogs intended for stable-proposed-updates

2011-06-17 Thread Ted Ts'o
On Sat, Jun 18, 2011 at 12:36:01AM +0200, Philipp Kern wrote:
 
 We cannot use the unstable version verbatim for technical reasons.  So I'd 
 like
 to ask you to add a changelog entry with Upload to proposed-updates. and a
 version like 1.41.12-4+squeeze1.  It needs to be built in a stable chroot
 and you'd need to specify the stable version with -v1.41.12-2 to debuild/
 dpkg-buildpackage so that the right changelog entries are included in the
 .changes.  I.e. please go ahead.

What I uploaded into unstable *was* built with a stable chroot, but
sure, I can re-upload it with the appropriate version number and
changelog entry.

I assume it should be dupload'ed to the proposed-updates queue,
correct?

 The deadline for the next point release is this weekend, though.  I
 apologize for the delay in responding; we're tying up the lose ends
 for the point release currently and this was one of them, which was
 lingering around because we generally don't like touching core stuff
 with extensive changes.

Understood.  OK, I'm flying back from Portland (Usenix ATC) to Boston
tomorrow morning, so I'll prepare the packages while I'm in the air.
I may not have a chance to upload them until late Saturday night or
Sunday mid-day, although I will try to do it sooner if I can.  (I just
want to make some allowances for Murphy's law while I'm in transit...)
I hope that will be enough time?

Regards,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#612522: e2fsprogs: [l10n-fr] : various errors in the translation (typo, etc.)

2011-05-07 Thread Ted Ts'o
tags 612522 +pending
thanks

On Wed, Feb 09, 2011 at 02:34:36PM -0500, Ted Ts'o wrote:
 
 I've forwarded your suggestions to the maintainer of the French
 language e2fsprogs.pot at the Translation Project.  Thanks!!

The maintainer of the French language translation file has updated
fr.po per your suggestions.  This will be reflected in a future
release of e2fsprogs.

Thanks,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#615998: linux-image-2.6.32-5-xen-amd64: Repeatable kernel BUG at fs/jbd2/commit.c:534 from Postfix on ext4

2011-04-05 Thread Ted Ts'o
On Tue, Apr 05, 2011 at 10:30:11AM -0500, Moffett, Kyle D wrote:
  Couple of questions which might give me some clues:
(a) was this a natively formatted ext4 file system, or a ext3 file
system which was later converted to ext4?
 
 All the filesystems were formatted like this using Debian e2fstools
 as of 9 months ago:

Rats.  OK, so the indirect block journal credit bug fix won't help
this bug.

   mke2fs -t ext4 -E lazy_itable_init=1 -L db:mail /dev/mapper/db-mail
   tune2fs -i 0 -c 1 -e remount-ro -o acl,user_xattr,journal_data 
 /dev/mapper/db-mail
 
 Ooooh could the lazy_itable_init have anything to do with it?

Shouldn't be, since 2.6.32 doesn't have the lazy inode init support.
That support didn't show up until 2.6.37.

 I've switched the relevant filesystems back to data=journal mode,
 so if you want to send me a patch for 2.6.32 that I can apply to a
 Debian kernel I will keep that kernel around and if I see it happen
 again I'll check if the patch fixes it.

Given that this was a freshly created file system with mke2fs -t ext4,
I doubt the patch would help.

 Well, the base image is essentially a somewhat basic Debian squeeze
 for EC2 with our SSH public keys and a couple generic customizations
 applied.  It does not have Postfix installed or configured, so there
 would be some work involved.

Well, if you can share that image in AWS with the ssh keys stripped
out it would save me a bunch of time.  I assume it's not setup to
automatically set ssh keys and pass them back to AWS like the generic
images can?

 I also didn't see any problems with the system at all until the
 queue got backed up with ~100-120 stuck emails.  After Postfix tried
 and failed to deliver a bunch of emails I would get the OOPS.

Yeah, what I'd probably try to do is install postfix and then send a
few hundred messages to foo...@example.com and see if I can repro the OOPS.

Thanks for investigating!

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#615998: linux-image-2.6.32-5-xen-amd64: Repeatable kernel BUG at fs/jbd2/commit.c:534 from Postfix on ext4

2011-04-04 Thread Ted Ts'o
On Mon, Apr 04, 2011 at 09:24:28AM -0500, Moffett, Kyle D wrote:
 
 Unfortunately it was not a trivial process to install Debian
 squeeze onto an EC2 instance; it took a couple ugly Perl scripts,
 a patched Debian-Installer, and several manual
 post-install-but-before-reboot steps (like fixing up GRUB 0.99).
 One of these days I may get time to update all that to the official
 wheezy release and submit bug reports.

Sigh, I was whoping someone was maintaining semi-official EC2 images
for Debian, much like alestic has been maintaining for Ubuntu.  (Hmm,
actually, he has EC2 images for Lenny and Etch, but unfortunately not
for squeeze.  Sigh)

 It's probably easier for me to halt email delivery and clone the
 working instance and try to reproduce from there.  If I recall, the
 (easily undone) workaround was to remount from data=journal to
 data=ordered on a couple filesystems.  It may take a day or two to
 get this done, though.

Couple of questions which might give me some clues: (a) was this a
natively formatted ext4 file system, or a ext3 file system which was
later converted to ext4?  (b) How big are the files/directories
involved?  In particular, how big is the Postfix mail queue directory,
and it is an extent-based directory?  (what does lsattr on the mail
queue directory report) As far as file sizes, does it matter how big
the e-mail messages are, and are there any other database files that
postgress might be touching at the time that you get the OOPS?

I have found a bug in ext4 where we were underestimating how many
journal credits were needed when modifying direct/indirect-mapped
files (which would be seen on ext4 if you had a ext3 file system that
was converted to start using extents; but old, pre-existing
directories wouldn't be converted), which is why I'm asking the
question about whether this was an ext2/ext3 file system which was
converted to use ext4.

I have a patch to fix it, but backporting it into a kernel which will
work with EC2 is not something I've done before.  Can anyone point me
at a web page that gives me the quick cheat sheet?

 If it comes down to it I also have a base image (from squeeze as of 9 
 months ago) that could be made public after updating with new SSH keys. 

If we can reproduce the problem on that base image it would be really
great!  I have an Amazon AWS account; contact me when you have an
image you want to share, if you want to share it just with my AWS
account id, instead of sharing it publically...

 - Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#615998: linux-image-2.6.32-5-xen-amd64: Repeatable kernel BUG at fs/jbd2/commit.c:534 from Postfix on ext4

2011-04-02 Thread Ted Ts'o
Hi Kyle,

Sorry for not following up sooner.  Are you still able to reproduce
this failure?  If I set up an identical Debian stable instance on
EC-2, am I likely to reproduce it myself?  Do you have a package list
or EC2 base image I can use as a starting point?

Thanks,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#615592: e2fsprogs: autodetect stride and stripe-width (and perhaps even block size) on RAID devices

2011-02-27 Thread Ted Ts'o
On Sun, Feb 27, 2011 at 04:52:46PM +0100, Christoph Anton Mitterer wrote:
 Package: e2fsprogs
 Version: 1.41.12-2
 Severity: wishlist
 
 
 AFAIU this is not yet done:
 
 It would be nice, if mke2fs could provide an auto-detect mode or
 something like this for setting sitrde and stripe-with.
 
 This should be possible by using device topology information and the
 information exported by DM/MD. At least for Linux Software RAID but
 maybe also for (supportding) hardware RAIDs.

This is done as of mke2fs 1.41.10.

 Perhaps it can also make sense to set (upper) limits on the block
 size, or at least give warnings if the block size is bigger than the
 RAID chunck size.

Given the block size is typically 4k (and can be no more than the page
size of the architecture on which it runs), and the RAID chunk size is
many times that (i.e., 32k, 64k, or more) , I don't think this is a
problem   or did you mean something other than block size?

  - Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#614611: e2fsprogs: ext4_mb_generate_buddy erros on suspend/resume

2011-02-22 Thread Ted Ts'o
On Tue, Feb 22, 2011 at 10:15:23PM +0530, Ritesh Raj Sarraf wrote:
 Package: e2fsprogs
 Version: 1.41.12-2
 Severity: normal
 
 I think I have started seeing this message very recently (maybe with the
 2.6.37 kernel).
 
 [  307.168035] EXT4-fs (dm-0): error count: 9
 [  307.168046] EXT4-fs (dm-0): initial error at 1296155431:
 ext4_mb_generate_buddy:726
 [  307.168054] EXT4-fs (dm-0): last error at 1296155431:
 ext4_reserve_inode_write:5589
 
 
 There hasn't been a data corruption that I'm aware of.
 
 I did check for similar reports but most I found were reported to have
 resizing as the common element. In my case, there's no resize done.

Yeah, it has nothing to do with resizing.  The problem is that you
need a newer e2fsprogs than what is shipping with Debian stable if you
want to use the newer kernel.  And I've held off on getting a newer
version of e2fsprogs into testing because I need to backport some
fixes into the very stale version of e2fsprogs 1.41.12 that has been
frozen during the stablization period for Sqeeze.

There is a version of e2fsprogs 1.41.14 in experimental which you can
use.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#613737: e2fsprogs: Programming error? block #33600 claimed for no reason in process_bad_block.

2011-02-16 Thread Ted Ts'o
On Wed, Feb 16, 2011 at 11:17:58PM +0100, Johannes Rohr wrote:
 Package: e2fsprogs
 Version: 1.41.12-2
 Severity: normal
 
 I have run a full read-write surface scan on an ext4 partition on an
 external USB hard drive (e2fsck -ccfy /dev/sdb6), which lasted for
 about 20 hours. After that, e2fsck emits the following error
 message:

First of all, can you map the blocks to specific inodes:

debugfs /dev/sdb6
debugfs: icheck 33600 33637

then when you get the inode numbers, can you try using the debugfs
stat command and show me the output.  i.e., if the inode number is
12345, enter the command:

debugfs: stat 12345

Also, if you retry the e2fsck with the -cc, can you reproduce the
problem?

Finally, if you retry the e2fsck command without the -cc can you
reproduce this? (i.e., e2fsck -fy /dev/sdb6).  If no, can you try it
with the -cc again (e2fsck -ccfy /dev/sdb6).

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#612522: e2fsprogs: [l10n-fr] : various errors in the translation (typo, etc.)

2011-02-09 Thread Ted Ts'o
forwarded 612522
thanks

I've forwarded your suggestions to the maintainer of the French
language e2fsprogs.pot at the Translation Project.  Thanks!!

Thanks for taking the time in making these corrections available.

   - Ted




-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#599079: /usr/sbin/filefrag: random perfection reported

2010-12-06 Thread Ted Ts'o
On Mon, Oct 04, 2010 at 03:38:01PM +0200, Mike Hommey wrote:
 Package: e2fsprogs
 Version: 1.41.12-2
 Severity: normal
 File: /usr/sbin/filefrag
 
 Filefrag never reports the same perfection, on top of the value being
 entirely wrong:
 
 # filefrag /mnt/gnome.raw 
 /mnt/gnome.raw: 3569 extents found, perfection would be -6071752 extent

Hmm this works for me.  What kernel version are you using, and
what file system type (ext2/ext3/ext4) are you using?  Can you also
send me the output of dumpe2fs -h /dev/XXX for your file system?

 - Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#605009: serious performance regression with ext4

2010-11-29 Thread Ted Ts'o
On Mon, Nov 29, 2010 at 02:16:02PM +0100, Raphael Hertzog wrote:
 
 It means we don't need to keep it in RAM since we're not going to
 read/modifiy it again in the near future. Thus the writeback can be
 started right now since delaying it will not save us anything.
 
 At least that's the way I understand the situation.

Yes, that's correct.  The fadvise() will do two things; it will start
the writeback, and also make these memory pages be the most likely to
be discarded.  This last might or might not be a good thing.  If you
are installing a large number of packages, discarding will avoid more
useful things from being discard, and might help the interactive
feel of the machine while the install is going on in the background.

OTOH, if you are only installing one package, it might cause some file
that will be needed by the postinstall script to be pushed out of the
page cache prematurely.

So the fadvise() does the same thing as SYNC_FILE_RANGE_WRITE, which
is to say, start an asynchronous writeback of the pages in the file.
It will not do a SYNC_FILE_RANGE_WAIT_BEFORE, which assures that the
writebacks are complete before attempting to start doing the
fdatasync().

  Put another way: if this works now, is it likely to continue to work?
 
 Well, it will always work (the code is unlikely to introduce failures),
 but the resulting behaviour is entirely up to the kernel to decide. So
 there's no guaranty that the optimization will last.

Exactly.  I think the real question is whether you want to also give
the hint that the pages for that particular file should be first in
line to be discarded from the page cache.  

 On the other hand, the whole point of posix_fadvise() is to give hints to
 the kernel so that he can decide on the best course of action. So I hope
 the interpretation above is one the main motivation behind that hint.

The main motivation is to make the pages easily discardable; the fact
that it happens to start writeback is really a side effect.  So for
backup programs, including rsync when it is being used for backups,
using POSIX_FADV_DONTNEED is definitely a good idea.  Whether or not
it is a good idea for dpkg really depends on whether you think the
files are going to be used soon after they are written --- either
because the user has just installed the new toy and wants to play with
it (i.e., apt-get install tuxracer; tuxracer) or because of a
post-install script.

On the other hand, if the user was just updating a random set of
progams that aren't actually going to be used right away (i.e.,
apt-get update; apt-get upgrade), in that case the
POSIX_FADV_DONTNEED would probably be a good thing.

The reason why I suggested using sync_file_range() is because it is
very specifically directed at forcing the writeback to happen, which
is not quite the same thrust as posix_fadvise().

Regards,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#605009: serious performance regression with ext4

2010-11-29 Thread Ted Ts'o
On Mon, Nov 29, 2010 at 02:58:16PM +, Ian Jackson wrote:
 
 This is the standard way that ordinary files for which reliability was
 important have been updated on Unix for decades.  fsync is for files
 which need synchronisation with things external to the computer (or at
 least, external to the volume) - eg, email at final dot.

This is simply not true.  And I'm speaking as someone who has been
doing Unix/Linux kernel development since the BSD 4.3 days.  (Well,
BSD 4.3+Tahoe days, to be precise.)

fsync() has always been the only guarantee that files would be on
disk.  In fact the way BSD worked, there was no guarantee that
rename() would provide any kind of file synchronization primitive;
that's actually something new.  No, in the old days, if you really
cared about a file, you would fsync() it.  Period.  End of paragraph.

It was just that in those days, the main things people cared about
where either source/text files (so the editors of the day would do the
right thing) or e-mail (and no, just for the final delivery; for all
MTA's).

The problem that caused people to get this wrong idea was because (a)
back then Unix machines tended to be more reliable, because they were
run by professionals in machine rooms, very often with UPS's.  Also,
(b) people weren't loading craptastic video drivers with buggy
proprietary kernel modules; they may have used proprietary drivers,
but kernels weren't changing all the time, and there was a lot more
careful testing of drivers before they were unloosed onto the world.

Finally (c), ext3 had as an accident of how it provided protection
against old file blocks showing up newly allocated files (something
which BSD 4.3 did __not__ protect against, by the way), had the
behaviour that renaming over a file __usually__ (but not always)
provided atomic guarantees.

(c) was especially unfortunate, because it never applied to all Linux
file systems, just to ext3, and because the fact that it did this was
also responsible for disastrous desktop performance when you had the
combination of large number of streaming writes (i.e., bittorrent,
video ripping/copying, etc.) going on in the background combined with
foreground GUI applications that were fsync-happy() --- i.e., firefox.

Lots of users have complained about the desktop performance problem,
but the reality is we can't really solve that without also taking away
the magic that made (c) happen.  Whether you solve it by using
data=writeback and stick with ext3, or switch to ext4, or switch to
XFS, or switch to btrfs --- all of these will solve the desktop
performance problem, but they also leave you vulnerable to file loss
in the case of system crashes and applications that don't use
fsync()/fdatasync().

Hence the fact that all file system developers, whether they were
btrfs developers or XFS developers or ext4 developers, made the joke
at the file system developers summit two years ago, that what the
application programmers really wanted was O_PONY, with the magic pixie
dust.   Unfortunately:

http://www.linuxformat.com/files/nopony.jpg

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#605009: serious performance regression with ext4

2010-11-29 Thread Ted Ts'o
On Mon, Nov 29, 2010 at 09:21:44AM -0600, Jonathan Nieder wrote:
 
 That explanation helps a lot.  Thanks, both.  (Guillem, I like your
 patch very much then.  Most files being unpacked in a dpkg run aren't
 going to be read back again soon.  Perhaps some other kernels will
 also interpret it as a hint to start writeback.)

Most files won't, but consider a postinstall script which needs to
scan/index a documentation file, or simply run one or more binaries
that was just installed.  I can definitely imagine situations where
using POSIX_FADV_DONTNEED could actually hurt performance.  Is it
enough to worry about?  Hard to say; for a very long dpkg run, the
files might end up getting pushed out of memory anyway.  But if you
are only installing one package, and you are doing this on a
particularly slow disk, using POSIX_FADV_DONTNEED could actually hurt
in a measurable way.

If you are only installing a one or a few packages, and/or you can
somehow divine the user's intention that they will very shortly use
the file --- for example, if dpkg is being launched via packagekit to
install some font or codec, then using POSIX_FADV_DONTNEED is probably
the wrong answer.  So at the very least I'd recommend having command
line options to enable/disable use of posix_fadvise().

Regards,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#605009: serious performance regression with ext4

2010-11-28 Thread Ted Ts'o
I did some experimenting, and I figured out what was going on.  You're
right, (c) doesn't quite work, because delayed allocation meant that
the writeout didn't take place until the fsync() for each file
happened.  I didn't see this at first; my apologies.

However, this *does* work:

extract(a);
sync_file_range(fd.a, 0, 0, SYNC_FILE_RANGE_WRITE); 
extract(b.dpkg-new);
sync_file_range(fd.b, 0, 0, SYNC_FILE_RANGE_WRITE); 
extract(c.dpkg-new);
sync_file_range(fd.c, 0, 0, SYNC_FILE_RANGE_WRITE); 

sync_file_range(fd.a, 0, 0, SYNC_FILE_RANGE_WAIT_BEFORE); 
sync_file_range(fd.b, 0, 0, SYNC_FILE_RANGE_WAIT_BEFORE); 
sync_file_range(fd.c, 0, 0, SYNC_FILE_RANGE_WAIT_BEFORE); 

fdatasync(a);
fdatasync(b.dpkg-new);
fdatasync(c.dpkg-new);

rename(b.dpkg-new, b);
rename(c.dpkg-new, c);

This assumes that files b and c existed beforehand, but a is a new file.

What's going on here?  sync_file_range() is a Linux specific system
call that has been around for a while.  It allows program to control
when writeback happens in a very low-level fashion.  The first set of
sync_file_range() system calls causes the system to start writing back
each file once it has finished being extracted.  It doesn't actually
wait for the write to finish; it just starts the writeback.

The second series of sync_file_range() calls, with the operation
SYNC_FILE_RANGE_WAIT_BEFORE, will block until the previously initiated
writeback has completed.  This basically ensures that the delayed
allocation has been resolved; that is, the data blocks have been
allocated and written, and the inode updated (in memory), but not
necessarily pushed out to disk.

The fdatasync() call will actually force the inode to disk.  In the
case of the ext4 file system, the first fdatasync() will actually push
all of the inodes to disk, and all of the subsequent fdatasync() calls
are in fact no-ops (assuming that files 'a', 'b', and 'c' are all on
the same file system).  But what it means is that it minimizes the
number of (heavyweight) jbd2 commits to a minimum.

It uses a linux-specific system call --- sync_file_range --- but the
result should be faster performance across the board for all file
systems.  So I don't consider this an ext4-specific hack, although it
probably does makes things faster for ext4 more than any other file
system.

I've attached the program I used to test and prove this mechanism, as
well as the kernel tracepoint script I used to debug why (c) wasn't
working, which might be of interest to folks on debian-kernel.
Basically it's a demonstration of how cool ftrace is.  :-)

But using this program on a file system composed of a 5400rpm laptop
drive running LVM and LUKS, I get:

mass-sync-tester -d:dpkg current: time:  0.83/ 0.01/ 0.00

versus

mass-sync-tester -n:dpkg fixed: time:  0.07/ 0.00/ 0.01

   - Ted

/*
 * Mass sync tester
 */

#define _GNU_SOURCE

#include stdio.h
#include unistd.h
#include stdlib.h
#include sys/types.h
#include sys/time.h
#include sys/stat.h
#include fcntl.h
#include sys/resource.h
#include getopt.h
#include errno.h
#include string.h

void write_file(const char *name, int sync, int sync_range)
{
	int	fd, i, ret;
	char	buf[1024];

	fd = open(name, O_WRONLY|O_TRUNC|O_CREAT, 0666);
	if (fd  0) {
		fprintf(stderr, open(%s) in write_file: %s\n,
			name, strerror(errno));
		exit(1);
	}
	memset(buf, 0, sizeof(buf));
	for (i=0; i  16; i++) {
		ret = write(fd, buf, sizeof(buf));
		if (ret  0) {
			fprintf(stderr, writing %s: %s\n,
name, strerror(errno));
			exit(1);
		}
	}
	if (sync) {
		ret = fsync(fd);
		if (ret  0) {
			fprintf(stderr, fsyncing %s in write_file: %s\n,
name, strerror(errno));
			exit(1);
		}
	}
	if (sync_range) {
		ret = sync_file_range(fd, 0, 0, SYNC_FILE_RANGE_WRITE);
		if (ret  0) {
			fprintf(stderr, sync_file_range %s in write_file: %s\n,
name, strerror(errno));
			exit(1);
		}
	}
	ret = close(fd);
	if (ret  0) {
		fprintf(stderr, closing %s in write_file: %s\n,
			name, strerror(errno));
		exit(1);
	}
}

void rename_file(const char *src, const char *dest)
{
	int ret;

	ret = rename(src, dest);
	if (ret) {
		fprintf(stderr, renaming %s to %s: %s\n, src, dest,
			strerror(errno));
		exit(1);
	}
}

void sync_file(const char *name)
{
	int	fd, i, ret;

	fd = open(name, O_RDONLY|O_NOATIME, 0666);
	if (fd  0) {
		fprintf(stderr, open(%s) in sync_file: %s\n,
			name, strerror(errno));
		exit(1);
	}
	ret = fsync(fd);
	if (ret  0) {
		fprintf(stderr, fsyncing %s in sync_file: %s\n,
			name, strerror(errno));
		exit(1);
	}
	ret = close(fd);
	if (ret  0) {
		fprintf(stderr, closing %s in sync_file: %s\n,
			name, strerror(errno));
		exit(1);
	}
}

void datasync_file(const char *name)
{
	int	fd, i, ret;

	fd = open(name, O_RDONLY|O_NOATIME, 0666);
	if (fd  0) {
		fprintf(stderr, open(%s) in datasync_file: %s\n,
			name, strerror(errno));
		exit(1);
	}
	ret = fdatasync(fd);
	if (ret  0) {
		fprintf(stderr, 

Bug#605009: serious performance regression with ext4

2010-11-26 Thread Ted Ts'o
On Fri, Nov 26, 2010 at 03:53:27PM +0100, Raphael Hertzog wrote:
 Just to sum up what dpkg --unpack does in 1.15.8.6:
 1/ set the package status as half-installed/reinst-required
 2/ extract all the new files as *.dpkg-new
 3/ for all the unpacked files: fsync(foo.dpkg-new) followed by
rename(foo.dpkg-new, foo)

What are you doing?

1) Suppose package contains files a, b, and c.  Which are you
doing?

a)  extract a.dpkg-new ; fsync(a.dpkg-new); rename(a.dpkg-new, a);
extract b.dpkg-new ; fsync(b.dpkg-new); rename(b.dpkg-new, b);
extract c.dpkg-new ; fsync(c.dpkg-new); rename(c.dpkg-new, c);

or

b)  extract a.dpkg-new ; fsync(a.dpkg-new);
extract b.dpkg-new ; fsync(b.dpkg-new);
extract c.dpkg-new ; fsync(c.dpkg-new);
rename(a.dpkg-new, a);
rename(b.dpkg-new, b);
rename(c.dpkg-new, c);

or

c)  extract(a.dpkg-new);
extract(b.dpkg-new);
extract(c.dpkg-new);
fsync(a.dpkg-new);
fsync(b.dpkg-new);
fsync(c.dpkg-new);
rename(a.dpkg-new, a);
rename(b.dpkg-new, b);
rename(c.dpkg-new, c);


(c) will perform the best for most file systems, including ext4.  As a
further optimization, if b and c does not exist, of course it
would be better to extract into b and c directly, and skip the
rename, i.e.:

d)  extract(a.dpkg-new);
extract(b); # assuming the file b does not yet exist
extract(c); # assuming the file c does not yet exist
fsync(a.dpkg-new);
fsync(b);
fsync(c);
rename(a.dpkg-new, a);

... and then set the package status as unpacked.

I am guessing you are doing (a) today --- am I right?  (c) or (d)
would be best.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#583942: e2fsprogs: option -p not properly documented

2010-11-26 Thread Ted Ts'o
On Fri, Jul 30, 2010 at 10:06:55PM -0400, Ted Ts'o wrote:
 On Mon, May 31, 2010 at 08:39:38PM +0200, Toni Mueller wrote:
  
  the -p option is not properly documented. Imho, every option deserves
  a top-level entry in a man page, and all other options seem to have it.
  I didn't check too thorougly, though.
 
 The -p option to *which* command in e2fsprogs?

You haven't responded to my question of which command is lacking
proper documentation for the -p option.

If you do not respond shortly, I will close this bug report as not
containing sufficient information.

- Ted





-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#591083: e2fsck.conf(5) should clarify whether ext4 fs are also controlled by it

2010-11-26 Thread Ted Ts'o
On Sat, Jul 31, 2010 at 08:05:24PM +0200, Jan Schulz wrote:
 Package: e2fsprogs
 Version: 1.41.12-2
 Severity: minor
 File: /usr/share/man/man5/e2fsck.conf.5.gz

This will be fixed in the 1.41.13 version of e2fsck.  Thanks for
pointing it out.

- Ted




-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#555456: Update to e2fsck bonehead problem: reproducible case found

2010-11-26 Thread Ted Ts'o
On Wed, Nov 17, 2010 at 12:19:14AM -0800, J.P. Larocque wrote:
 Hi Ted and Micah,
 
 I ran into the problem in e2fsck that prints:
 
 WARNING: PROGRAMMING BUG IN E2FSCK!
 OR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.
 inode_link_info[X] is Y, inode.i_links_count is Z.  They should be the same!
 
 I've sent a full transcript, e2image file with which the problem can
 be reproduced, and background information to 555...@bugs.debian.org,
 which you can access at
 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=555456.  (I'm
 sending this message separately to spare you both from the 2.1MiB
 attachment.)
 
 Hope it helps.  Thanks!

Thanks for sending me the test case.  I've been able to find a fix for
this which will be going into e2fsprogs 1.41.13.

- Ted

commit 992016c5afde0f77a9ff10c4fc5be02f83eb055c
Author: Theodore Ts'o ty...@mit.edu
Date:   Fri Nov 26 19:09:43 2010 -0500

e2fsck: Fix inode nlink accounting that could cause PROGRAMMING BUG errors

This fixes two possible causes for the error message:

WARNING: PROGRAMMING BUG IN E2FSCK!
OR SOME BONEHEAD (YOU) IS CHECKING A MOUNTED (LIVE) FILESYSTEM.
inode_link_info[X] is Y, inode.i_links_count is Z.  They should be the same!

One cause which can trigger this message is when an inode has an
illegal link count  65500 --- for example, 65535.  This was the case
in the Debian Bug report #555456.

Another cause which could trigger this message is if an ext4 directory
previously had more than 65000 subdirectories (thus causing
i_link_count to be set to 1), but then some of the subdirectories were
deleted, such that i_link_count should now be the actual number of
subdirectories.

Addresses-Debian-Bug: #555456

Signed-off-by: Theodore Ts'o ty...@mit.edu

diff --git a/e2fsck/pass4.c b/e2fsck/pass4.c
index d9706ce..515cb84 100644
--- a/e2fsck/pass4.c
+++ b/e2fsck/pass4.c
@@ -121,6 +121,8 @@ void e2fsck_pass4(e2fsck_t ctx)
 
/* Protect loop from wrap-around if s_inodes_count maxed */
for (i=1; i = fs-super-s_inodes_count  i  0; i++) {
+   int isdir = ext2fs_test_inode_bitmap(ctx-inode_dir_map, i);
+
if (ctx-flags  E2F_FLAG_SIGNAL_MASK)
goto errout;
if ((i % fs-super-s_inodes_per_group) == 0) {
@@ -153,14 +155,14 @@ void e2fsck_pass4(e2fsck_t ctx)
ext2fs_icount_fetch(ctx-inode_count, i,
link_counted);
}
-   if (ext2fs_test_inode_bitmap(ctx-inode_dir_map, i) 
-   (link_counted  EXT2_LINK_MAX))
+   if (isdir  (link_counted  EXT2_LINK_MAX))
link_counted = 1;
if (link_counted != link_count) {
e2fsck_read_inode(ctx, i, inode, pass4);
pctx.ino = i;
pctx.inode = inode;
-   if (link_count != inode-i_links_count) {
+   if ((link_count != inode-i_links_count)  !isdir 
+   (inode-i_links_count = EXT2_LINK_MAX)) {
pctx.num = link_count;
fix_problem(ctx,
PR_4_INCONSISTENT_COUNT, pctx);
@@ -168,10 +170,10 @@ void e2fsck_pass4(e2fsck_t ctx)
pctx.num = link_counted;
/* i_link_count was previously exceeded, but no longer
 * is, fix this but don't consider it an error */
-   if ((LINUX_S_ISDIR(inode-i_mode)  link_counted  1 
+   if ((isdir  link_counted  1 
 (inode-i_flags  EXT2_INDEX_FL) 
 link_count == 1  !(ctx-options  E2F_OPT_NO)) ||
-(fix_problem(ctx, PR_4_BAD_REF_COUNT, pctx))) {
+   fix_problem(ctx, PR_4_BAD_REF_COUNT, pctx)) {
inode-i_links_count = link_counted;
e2fsck_write_inode(ctx, i, inode, pass4);
}



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#604629: Patch to allow cross build with xdeb

2010-11-26 Thread Ted Ts'o
On Tue, Nov 23, 2010 at 08:33:36AM +, Peter Pearse wrote:
 The patch below enables the package to cross build using xdeb
 ---
 +-DEPSTATIC_LIBBLKID = @DEPSTATIC_LIBBLKID@ $(STATIC_LIBUUID)
 ++# Why add the non static string here?
 ++# - causes the cross build to fail
 ++# DEPSTATIC_LIBBLKID = @DEPSTATIC_LIBBLKID@ $(STATIC_LIBUUID)
 ++DEPSTATIC_LIBBLKID = @DEPSTATIC_LIBBLKID@

That's not the right fix.  The right fix is to change MCONFIG.in so
the line reads:

DEPSTATIC_LIBBLKID = @DEPSTATIC_LIBBLKID@ $(DEPSTATIC_LIBUUID)

Thanks for pointing out the problem.  I'll fix this appropriately for
e2fsprogs 1.41.13.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#598260: e2fsprogs: resize inode not valid

2010-09-28 Thread Ted Ts'o
On Tue, Sep 28, 2010 at 03:24:51PM +0300, Dmitry Baryshev wrote:
 Hi.
 
 $ fsck /dev/sdb5
 fsck from util-linux-ng 2.17.2
 e2fsck 1.41.12 (17-May-2010)
 fsck.ext3: Group descriptors look bad... trying backup blocks...
 /dev/sdb5: clean, 11/1310720 files, 123484/5242338 blocks
 
 $ fsck -f /dev/sdb5
 shows tons of questions, I'm attaching a photo

OK, that's really wierd.  Would you be willing to send me compressed
raw e2image of your filesystem so I can figure out what's going on?
See the man page for e2image(8), and the section RAW IMAGE FILES.
For what's likely to be going on, the directory names won't matter, so
if you are concerned about the file names in your directories (not I
care or would go prying to see them anyway), feel free to use the -s
option to scramble the file names if that would make you more
comfortable.

Since the file will be fairly big, if you can send me private e-mail
with the URL to download them, that would be great.  If you don't have
access to facilities to allow you to do that, let me know and I can
set up some kind of anonymous FTP upload facility.

Thanks,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#598260: e2fsprogs: resize inode not valid

2010-09-27 Thread Ted Ts'o
On Tue, Sep 28, 2010 at 12:02:01AM +0300, Krasu wrote:
 Package: e2fsprogs
 Version: 1.41.12-2
 Severity: important
 
 I'm getting Resize inode not valid all the time during boot. It fails to
 check the root filesystem, which is ext3, and shows a prompt to ebter root
 password or continue.
 
 /dev/sdb5 on / type ext3 (rw,errors=remount-ro)
 
 If I login into shell and run fsck manually (without any option), it doesn't
 ask any questions, just fixes something automatically (something like group
 descriptors look bad, trying to backup blocks). Then I press Ctrl+D, shell
 exits, and machine reboots. After that I don't see error messages, machine
 boots successfully. After second reboot I see error message again, and I 
 should
 redo all steps again to fix it.

Can you please try to capture the output of running fsck manually, so
I can see what it has printed.  You can use the script command, or
just redirect standard output to a file and run e2fsck with the -y
option, etc.  Just so I can see everything fsck is printing.

What happens if you run e2fsck -f /dev/XXX a second time.  Do you
see any errors with the second run of e2fsck?  

  - Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#593620: e2fsprogs: e2fsck returns exit code 32 though allow_cancellation = true

2010-09-26 Thread Ted Ts'o
On Sun, Sep 26, 2010 at 03:02:18PM +0400, SIO wrote:
 Yes, looks like you are right. I've done that test, and e2fsck
 returned 0. Will look into init scripts then

Do you have a preference as to whether I reassign bug #59632 to
initscripts, or we should close it and you can reopen another bug with
initscripts or whatever happens to be the proper package once you've
done more investigation?

Regards,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#594004: resize2fs(8) does not clearly specify size units

2010-09-25 Thread Ted Ts'o
tags 594004 +pending
thanks

On Mon, Aug 23, 2010 at 01:09:46AM +0100, Ben Hutchings wrote:
 Package: e2fsprogs
 Version: 1.41.12-2
 Severity: important
 
 resize2fs(8) says:
 
 Optionally, the size parameter may be suffixed by one of the
 following the units designators: 's', 'K', 'M', or 'G', for 512 byte
 sectors, kilobytes, megabytes, or gigabytes, respectively.
 
 In contrast to hard disk specifications, the suffixes are interpreted
 as base-2 multiples, not base-10 multiples.  This could lead to data
 loss when shrinking a filesystem and then separately shrinking the
 partition, if the partitioning tool is not filesystem-aware.
 
 The manual page should state explicitly that the suffixes are
 interpreted as base-2 multiples.

Priority *important*?!?

OK, I'll check in the following patch.

- Ted

commit 63feaa13ab1011b40d59011e6ffdc1a07d3423ac
Author: Theodore Ts'o ty...@mit.edu
Date:   Sat Sep 25 20:23:33 2010 -0400

resize2fs.8: Make it clear that power-of-2 units are meant by kilobytes

It's sad that this needs to be made clear

Addresses-Debian-Bug: #594004

Signed-off-by: Theodore Ts'o ty...@mit.edu

diff --git a/resize/resize2fs.8.in b/resize/resize2fs.8.in
index 09770e1..214d43c 100644
--- a/resize/resize2fs.8.in
+++ b/resize/resize2fs.8.in
@@ -51,6 +51,14 @@ If
 .I size
 parameter is not specified, it will default to the size of the partition.
 .PP
+Note: when kilobytes is used above, I mean
+.IR real ,
+power-of-2 kilobytes, (i.e., 1024 bytes), which some politically correct
+folks insist should be the stupid-sounding ``kibibytes''.  The same
+holds true for megabytes, also sometimes known as ``mebibytes'', or
+gigabytes, as the amazingly silly ``gibibytes''.  Makes you want to
+gibber, doesn't it?
+.PP
 The
 .B resize2fs
 program does not manipulate the size of partitions.  If you wish to enlarge



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#594004: resize2fs(8) does not clearly specify size units

2010-09-25 Thread Ted Ts'o
On Sun, Sep 26, 2010 at 01:45:02AM +0100, Ben Hutchings wrote:
  
  Priority *important*?!?
 [...]
 
 Because of the potential for data loss in case of confusion.

Umm, how?  If the size specified is bigger than the device size,
resize2fs will stop and warn the user.

- Ted




-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#587531: e2fsprogs: e2fsck/tune2fs work badly with lvm snapshot of fs with external journal

2010-09-25 Thread Ted Ts'o
tag 587531 +pending
thanks

I've checked the following patch into the e2fsprogs source tree, which
will be in 1.41.13.

- Ted

commit 8718359b4057bf2b998f4ac6125e33f20efe60cb
Author: Theodore Ts'o ty...@mit.edu
Date:   Sat Sep 25 21:14:06 2010 -0400

e2fsck: Open the external journal in exclusive mode

This prevents accidentally replaying and resetting the journal while
it is mounted, due to an accidental attempt to run e2fsck on an LVM
snapshot of a file system with an external journal.

Addresses-Debian-Bug: #587531

Signed-off-by: Theodore Ts'o ty...@mit.edu

diff --git a/e2fsck/journal.c b/e2fsck/journal.c
index 64a0fd6..b741eb9 100644
--- a/e2fsck/journal.c
+++ b/e2fsck/journal.c
@@ -368,7 +368,8 @@ static errcode_t e2fsck_get_journal(e2fsck_t ctx, journal_t 
**ret_journal)
 #ifndef USE_INODE_IO
if (ext_journal)
 #endif
-   retval = io_ptr-open(journal_name, IO_FLAG_RW,
+   retval = io_ptr-open(journal_name,
+ IO_FLAG_RW | IO_FLAG_EXCLUSIVE,
  ctx-journal_io);
if (retval)
goto errout;



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#593620: e2fsprogs: e2fsck returns exit code 32 though allow_cancellation = true

2010-09-25 Thread Ted Ts'o
On Thu, Aug 19, 2010 at 09:11:39PM +0400, SIO wrote:
 
 Here is my /etc/e2fsck.conf:
 [options]
 allow_cancellation = true
 
 Though cancellation is allowed, when I hit ^c during check of my root 
 partition
 at system boot, it is remounted as read-only. File system is not flagged as
 containing errors, check is triggered by mounts count.
 
 Steps to reproduce:
 1. Add mentioned option to /etc/e2fsck.conf
 2. Set mount count greater than max-mount-count for your fs: tune2fs -C 100
 /dev/sda1
 3. Reboot
 4. Hit ^c during filesystem check

Can you try testing this by running e2fsck /dev/sda1 by hand, typing
^C, and then checking the exit value?  i.e:

tytso.r...@tytso-glaptop {/home/tytso}  
2087# /tmp/sbin/e2fsck.static /dev/funarg/kbuild 
e2fsck 1.41.12 (17-May-2010)
/dev/funarg/kbuild has been mounted 35 times without being checked, check 
forced.
Pass 1: Checking inodes, blocks, and sizes
^C/dev/funarg/kbuild: e2fsck canceled.
tytso.r...@tytso-glaptop {/home/tytso}  
2088# echo $?
0

I've tried replicating this with the e2fsck.static from the package
e2fsck-static_1.41.12-2_amd64.deb, and with the allow_cancellation
option set, I'm not able to replicate the problem.  That is, when I
interrupt e2fsck, the exit code is properly zero.

I'm wondering if the problem is because of the fact that you are
interrupting the init script, which is then somehow exiting with a
non-zero status.  If that's true, then it's not something that's under
the control of e2fsprogs.  Hence my request for you to test this
without having the boot scripts involved.  If it works w/o the boot
scripts, then the problem will be in the init scripts.

Best regards,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#580236: /sbin/tune2fs: manpage does not mention LABEL=volume_name as device name

2010-09-25 Thread Ted Ts'o
tag +580236 pending
thanks

On Tue, May 04, 2010 at 06:47:06PM +0200, Michael Schmitt wrote:
 as specifying the device with its label does work too. A short sentence about
 that could be added too.

This will be fixed in the next release of e2fsprogs.

Regards,

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#594004: resize2fs(8) does not clearly specify size units

2010-09-25 Thread Ted Ts'o
On Sun, Sep 26, 2010 at 02:35:14AM +0100, Ben Hutchings wrote:
 
 But if you're shrinking, you have to resize the filesystem and then the
 partition.  And the partitioning tool is not so likely to know the size
 of the filesystem.

And what partitioning tool uses marketing gigabytes as opposed to real
gigabytes?

This is all stupid anyway, since people who do this are more than
likely to screw up and get it wrong by typo'ing a number.  Tools like
gparted are integrated with the filesystem resizers, and this is never
an issue.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#583942: e2fsprogs: option -p not properly documented

2010-07-30 Thread Ted Ts'o
On Mon, May 31, 2010 at 08:39:38PM +0200, Toni Mueller wrote:
 
 the -p option is not properly documented. Imho, every option deserves
 a top-level entry in a man page, and all other options seem to have it.
 I didn't check too thorougly, though.

The -p option to *which* command in e2fsprogs?

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#589345: e2fsprogs: Linux 2.6 kernel supports online resizing of ext4

2010-07-19 Thread Ted Ts'o
tags 589345 +pending
thanks

On Fri, Jul 16, 2010 at 08:54:49PM +0100, Francis Russell wrote:
 Package: e2fsprogs
 Version: 1.41.12-2
 Severity: minor
 
 The resize2fs manpage says As of this writing, the Linux 2.6 kernel supports 
 on-line resize for filesystems
 mounted using ext3 only. I resized a mounted ext4 partion the other day on a 
 2.6.34.1 kernel and I'm sure I've
 done it before May 2010 which seems to be date-stamp on the man-page. This 
 should probably be updated.

Thanks for pointing this out.  Ext4 has always supported on-line
resize, but when the man page was updated to add and ext4 in the
first sentence, I failed to update the later sentence regarding online
resizing.  I've checked in the simple and obvious fix.  It will be in
the next release of e2fsprogs.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#588726: e2fsprogs: Outdated description: /sbin/fsck has moved to util-linux

2010-07-19 Thread Ted Ts'o
tags 588726 +pending
thanks

On Sun, Jul 11, 2010 at 05:36:47PM +0200, Nicolas Boulenguez wrote:
 Package: e2fsprogs
 Version: 1.41.12-2
 Severity: minor
 Tags: patch
 
 Here is a trivial patch for this cosmetic change.

Thanks for pointing this out.  It will be fixed in the next release of
e2fsprogs.

- Ted



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org