From: Geert U. <ge...@li...> - 2003-08-14 10:46:59
|
On Wed, 13 Aug 2003, Sven Luther wrote: > On Wed, Aug 13, 2003 at 06:11:52PM +0200, Geert Uytterhoeven wrote: > > On Wed, 13 Aug 2003, Sven Luther wrote: > > > On Wed, Aug 13, 2003 at 05:34:35PM +0200, Geert Uytterhoeven wrote: > > > > BTW, removing the (un)register calls for UFS didn't help, as expected (the > > > > assertion just causes UFS not being registered). > > > > > > What about removing the affs stuff ? > > > > Still the same ;-( > > Ok, i have to go today, but i will prepare a new version tomorrow, with > more debuging messages. It would be nice to know which function is > called when the probe is done. I expect you don't get the real values, > because it is a a table with function pointers or so. Could you try to > get which of the function pointers is called with gdb or whatever you > where using? Apparently the last probe function called before the crash is reiserfs_probe(), which seems to corrupt the stack. After disabling the registration of reiserfs I get: | Disk geometry for /dev/hda: 0.000-1039.500 megabytes | Disk label type: amiga | Minor Start End Filesystem Flags | 1 0.984 9.351 | 2 9.352 259.382 | 3 259.383 291.867 ext2 | 4 291.867 324.351 linux-swap | 5 324.352 424.757 ext2 | 6 424.758 1039.500 ext2 Which is consistent with the data from HdToolBox. After re-enabling affs and adding support for MultiUser (patch below), I get: | PROBING FOR AN AMIGA PARTITION TABLE. | Reserved = 2, Prealloc = 0 | Cyl = 2112, Sect = 63, Head = 16, Sect*Head = 1008, CylBlocks = 1008 | Block size is 128 | AMIGA FFS : boot block detected FFS\3 | AMIGA FFS : root block should be at 10584 (2016-19151:17136) | AMIGA FFS : root-2 block : type = 653206047, subtype = -628857599, sum = | -1976770243 | AMIGA FFS : root-1 block : type = 637044347, subtype = -1881946650, sum = | 1885671754 | AMIGA FFS : root+1 block : type = 0, subtype = 0, sum = 0 | AMIGA FFS : root+2 block : type = -33552265, subtype = -1, sum = 0 | AMIGA FFS : root block : type = 2, subtype = 1, sum = 0 | Program received signal SIGSEGV, Segmentation fault. | 0xc012e16a in free () from /lib/libc.so.6 :-( For /dev/hdb, which doesn't contain any affs partitions: | PROBING FOR AN AMIGA PARTITION TABLE. | Reserved = 0, Prealloc = 0 | Cyl = 1057, Sect = 63, Head = 16, Sect*Head = 1008, CylBlocks = 1008 | Block size is 128 | AMIGA FFS : boot block detected FFS\3 | AMIGA FFS : root block should be at 287280 (2016-572543:570528) | AMIGA FFS : root-2 block : type = 1026176313, subtype = 1598254958, sum = | 1968231241 | AMIGA FFS : root-1 block : type = 1937011297, subtype = 842283008, sum = | 302493690 | AMIGA FFS : root+1 block : type = 741552950, subtype = 741552699, sum = | -1510802252 | AMIGA FFS : root+2 block : type = 1634495599, subtype = 1601200498, sum = | -1940758414 | AMIGA FFS : root block : type = 1599038058, subtype = 976433203, sum = | -463838221 | Reserved = 0, Prealloc = 0 | Cyl = 1057, Sect = 63, Head = 16, Sect*Head = 1008, CylBlocks = 1008 | Block size is 128 | Disk geometry for /dev/hdb: 0.000-520.242 megabytes | Disk label type: amiga | Minor Start End Filesystem Flags | 1 0.984 279.562 ext2 | 2 279.562 520.242 ext2 Which is OK. --- parted-1.6.5-1.0.0.1/libparted/fs_affs/interface.c.orig Thu Aug 14 12:16:10 2003 +++ parted-1.6.5-1.0.0.1/libparted/fs_affs/interface.c Thu Aug 14 12:20:08 2003 @@ -55,6 +55,13 @@ case 0x444f5303 : /* 'DOS\3' : FFS Int. */ case 0x444f5304 : /* 'DOS\4' : OFS DirCache */ case 0x444f5305 : /* 'DOS\5' : FFS DirCache */ + case 0x6d754653 : /* 'muFS' : MultiUser FFS Int. */ + case 0x6d754600 : /* 'muF\0' : MultiUser OFS */ + case 0x6d754601 : /* 'muF\1' : MultiUser FFS */ + case 0x6d754602 : /* 'muF\2' : MultiUser OFS Int. */ + case 0x6d754603 : /* 'muF\3' : MultiUser FFS Int. */ + case 0x6d754604 : /* 'muF\4' : MultiUser OFS DirCache */ + case 0x6d754605 : /* 'muF\5' : MultiUser FFS DirCache */ printf ("AMIGA FFS : boot block detected FFS\\%d \n", block[0]&0xff); printf ("AMIGA FFS : root block should be at %llu (%llu-%llu:%llu)\n", root, geom->start, geom->end, geom->length); Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@li... In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds |