tune2fs: remove_journal_device(): use the correct block to find jsb
Signed-off-by: Azat Khuzhin <a3at.mail@gmail.com>
Reviewed-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
diff --git a/misc/tune2fs.c b/misc/tune2fs.c
index ff50f37..1df655a 100644
--- a/misc/tune2fs.c
+++ b/misc/tune2fs.c
@@ -188,6 +188,7 @@
errcode_t retval;
int commit_remove_journal = 0;
io_manager io_ptr;
+ int start;
if (f_flag)
commit_remove_journal = 1; /* force removal even if error */
@@ -224,8 +225,10 @@
goto no_valid_journal;
}
+ start = ext2fs_journal_sb_start(fs->blocksize);
/* Get the journal superblock */
- if ((retval = io_channel_read_blk64(jfs->io, 1, -SUPERBLOCK_SIZE, buf))) {
+ if ((retval = io_channel_read_blk64(jfs->io, start,
+ -SUPERBLOCK_SIZE, buf))) {
com_err(program_name, retval, "%s",
_("while reading journal superblock"));
goto no_valid_journal;
@@ -256,7 +259,8 @@
jsb->s_nr_users = htonl(nr_users);
/* Write back the journal superblock */
- if ((retval = io_channel_write_blk64(jfs->io, 1, -SUPERBLOCK_SIZE, buf))) {
+ if ((retval = io_channel_write_blk64(jfs->io, start,
+ -SUPERBLOCK_SIZE, buf))) {
com_err(program_name, retval,
"while writing journal superblock.");
goto no_valid_journal;