From: Theodore Tso <tytso@mit.edu>
To: Marcin Miroslaw <spam_trap@kolekcja.mejor.pl>
Cc: linux-ext4@vger.kernel.org
Subject: Re: fsck.ext4 -D corrupts fs?
Date: Wed, 19 Aug 2009 22:44:19 -0400 [thread overview]
Message-ID: <20090820024419.GA7076@mit.edu> (raw)
In-Reply-To: <h6hmcr$hqi$1@ger.gmane.org>
On Wed, Aug 19, 2009 at 10:13:14PM +0200, Marcin Miroslaw wrote:
> Hello,
> I've noticed fs curruption after using fsck.ext4 -D
Yeah, I really should get a new release of e2fsprogs out. It's fixed
in the maint branch.
- Ted
commit 16e470e65010ba3f0516cf9cdf1bd6c98f064e3f
Author: Theodore Ts'o <tytso@mit.edu>
Date: Sun Jul 19 22:43:33 2009 -0400
libext2fs: Fix regression in ext2fs_extent_set_bmap()
Commit 0dc291611 introduced a regression when unmapping the first
block in an extent. This caused e2fsck -fD to corrupt large
directories if the directory has to shrink by more than one block.
The problem was set_bmap should only go to a next leaf when setting a
first block in an extent, and not when it is unmapping the first block
in an extent.
Addresses-Debian-Bug: #537510
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
diff --git a/lib/ext2fs/extent.c b/lib/ext2fs/extent.c
index 7fcc2cf..9d7b7de 100644
--- a/lib/ext2fs/extent.c
+++ b/lib/ext2fs/extent.c
@@ -1296,11 +1296,12 @@ errcode_t ext2fs_extent_set_bmap(ext2_extent_handle_t handle,
}
if (retval)
goto done;
+ retval = ext2fs_extent_get(handle,
+ EXT2_EXTENT_NEXT_LEAF,
+ &extent);
+ if (retval)
+ goto done;
}
- retval = ext2fs_extent_get(handle, EXT2_EXTENT_NEXT_LEAF,
- &extent);
- if (retval)
- goto done;
extent.e_pblk++;
extent.e_lblk++;
extent.e_len--;
next prev parent reply other threads:[~2009-08-20 2:44 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-19 20:13 fsck.ext4 -D corrupts fs? Marcin Miroslaw
2009-08-20 2:44 ` Theodore Tso [this message]
2009-08-20 8:54 ` Thierry Vignaud
2009-08-23 14:52 ` Theodore Tso
2009-08-20 19:49 ` Marcin Miroslaw
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090820024419.GA7076@mit.edu \
--to=tytso@mit.edu \
--cc=linux-ext4@vger.kernel.org \
--cc=spam_trap@kolekcja.mejor.pl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.