File e2fsprogs-1.41.1-e2fsck_fix_automatic_blocksize_detection.patch of Package e2fsprogs

commit 52771ab59145d66b50399a8b953b8181cb2d5b04
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Tue Sep 9 15:02:24 2008 -0400

    e2fsck: Fix e2fsck automatic blocksize detetion
    
    This fixes a regression that was introduced in commit dcc91e10 (it
    showed up first in e2fsprogs 1.40.7).  Since we weren't freeing the
    filesystem handle, ext2fs_open2() was returning EBUSY, and so this
    caused a failure in the code that would automatically determine the
    filesystem block size when only the superblock number was specified by
    the user.
    
    This was discussed in http://ubuntuforums.org/showthread.php?t=789323,
    and Matthias Bannach pointed this out to me, for which I am very
    grateful.
    
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

diff --git a/e2fsck/unix.c b/e2fsck/unix.c
index 94938a4..64faebe 100644
--- a/e2fsck/unix.c
+++ b/e2fsck/unix.c
@@ -971,6 +971,8 @@ restart:
 		int blocksize;
 		for (blocksize = EXT2_MIN_BLOCK_SIZE;
 		     blocksize <= EXT2_MAX_BLOCK_SIZE; blocksize *= 2) {
+			if (fs)
+				ext2fs_free(fs);
 			retval = ext2fs_open2(ctx->filesystem_name,
 					      ctx->io_options, flags,
 					      ctx->superblock, blocksize,
openSUSE Build Service is sponsored by