forked from pool/e2fsprogs
33 lines
1.2 KiB
Diff
33 lines
1.2 KiB
Diff
|
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,
|