summaryrefslogtreecommitdiff
path: root/resize
diff options
context:
space:
mode:
authorEric Sandeen <sandeen@redhat.com>2009-11-09 14:57:04 -0600
committerTheodore Ts'o <tytso@mit.edu>2009-11-12 19:46:56 -0500
commitd93d5bbf605f81eb13fa71a55dfbed06f88fe930 (patch)
tree805a7f24d58d4f016879f42fc89a44bc8a7e6a2c /resize
parent06ef971be505678ee462ae1844204ed24f14aedc (diff)
downloade2fsprogs-d93d5bbf605f81eb13fa71a55dfbed06f88fe930.tar.gz
resize2fs: exit fix_sb_journal_backup early for external journal
Resizing a filesystem with an external journal fails when it tries to read inode 0: # touch testfs # truncate testfs 1342177280 # touch testjournal # truncate testjournal 134217728 # mke2fs -O journal_dev testjournal # losetup /dev/loop0 testjournal # mkfs.ext4 -J device=/dev/loop0 testfs 127680 # resize2fs testfs resize2fs 1.41.9 (22-Aug-2009) Resizing the filesystem on testfs to 327680 (4k) blocks. resize2fs: Illegal inode number while trying to resize testfs Please run 'e2fsck -fy testfs' to fix the filesystem after the aborted resize operation. I think the right, simple thing to do is just bail out early for an external journal here, as there are no backup blocks to update. Reported-by: mjevans1983@gmail.com Signed-off-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'resize')
-rw-r--r--resize/resize2fs.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/resize/resize2fs.c b/resize/resize2fs.c
index 648e1f93..75c4721e 100644
--- a/resize/resize2fs.c
+++ b/resize/resize2fs.c
@@ -1882,6 +1882,10 @@ static errcode_t fix_sb_journal_backup(ext2_filsys fs)
if (!(fs->super->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL))
return 0;
+ /* External journal? Nothing to do. */
+ if (fs->super->s_journal_dev && !fs->super->s_journal_inum)
+ return 0;
+
retval = ext2fs_read_inode(fs, fs->super->s_journal_inum, &inode);
if (retval)
return retval;