ext3 online resize (was: rawhide report: 20031209 changes)

Alexandre Oliva aoliva at redhat.com
Sun Dec 14 13:46:16 UTC 2003


On Dec 10, 2003, Dave Jones <davej at redhat.com> wrote:

> On Wed, Dec 10, 2003 at 02:55:21PM -0200, Alexandre Oliva wrote:

>> I'd love to play with that.

> It's in todays rawhide kernel.

I'm using kernel-2.6.0-0.test11.1.13 (plus lvm2 et al) from rawhide
and ext2online 1.1.17 from
http://ext2resize.sourceforge.net/download.html, but it won't work.
Even if I create an ext2 filesystem with 4MB in a large logical
volume, ext2prepare it to the LV size before mounting it, it won't work:

# mke2fs -L /l/tmp -b 4096 /dev/all/test 1024
mke2fs 1.34 (25-Jul-2003)
Filesystem label=/l/tmp
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1024 inodes, 1024 blocks
51 blocks (4.98%) reserved for the super user
First data block=0
1 block group
32768 blocks per group, 32768 fragments per group
1024 inodes per group
 
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
 
This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
# tune2fs -c 0 -i 0 /dev/all/test
tune2fs 1.34 (25-Jul-2003)
Setting maximal mount count to -1
Setting interval between check 0 seconds
# ext2prepare -v /dev/all/test 2480128
# ext2online /dev/all/test 4m
ext2online v1.1.17 - 2001/03/18 for EXT2FS 0.5b
ext2online: new size is same as current (1024)
# ext2online /dev/all/test 5m
ext2online v1.1.17 - 2001/03/18 for EXT2FS 0.5b
 
ext2online: resizing to 1280 blocks
ext2online: resize failed while in kernel
ext2online: Invalid argument
# strace -f ext2online /dev/all/test 8m
open("/dev/all/test", O_RDONLY)         = 3
open("/dev/all/test", O_WRONLY)         = 4
[...]
write(1, "ext2online: resizing to 2048 blo"..., 36ext2online: resizing to 2048 blocks
) = 36
fdatasync(4)                            = 0
rt_sigaction(SIGHUP, {SIG_IGN}, NULL, 8) = 0
rt_sigaction(SIGINT, {SIG_IGN}, NULL, 8) = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, NULL, 8) = 0
mount("/dev/all/test", "/l/tmp", "ext2", MS_REMOUNT|0xc0ed0000, 0x8053198) = -1 EINVAL (Invalid argument)
write(2, "ext2online: resize failed while "..., 42ext2online: resize failed while in kernel
) = 42
write(2, "ext2online: Invalid argument\n", 29ext2online: Invalid argument
) = 29


I'd tried an ext3 filesystem before, but it produced the same results.
Even "ext2" in the filesystem mount type passed as argument to mount.
Am I missing anything?  Should I be using a different package for
on-line resizing of ext3?  Or is anything missing in the kernel to
support online resizing?

Thanks,

-- 
Alexandre Oliva   Enjoy Guarana', see http://www.ic.unicamp.br/~oliva/
Red Hat GCC Developer                 aoliva@{redhat.com, gcc.gnu.org}
CS PhD student at IC-Unicamp        oliva@{lsd.ic.unicamp.br, gnu.org}
Free Software Evangelist                Professional serial bug killer





More information about the devel mailing list