> The patches are ready. I am going to split them into 3 series: > > - ext3 patches Done. Note: I changed is_reiserfs and is_e3 to "match" a partial string, ie. udma66-reiserfs.
--- boot-floppies-cvs.orig/utilities/dbootstrap/partition_config.c +++ boot-floppies-cvs/utilities/dbootstrap/partition_config.c @@ -10,7 +10,9 @@ #include "util.h" #include "notail.h" -#define is_rfs (bootargs.flavor && !strcmp ("reiserfs", bootargs.flavor)) +/* strstr allows something like flavor="2.2.19-udma100-reiserfs" */ +#define is_rfs (bootargs.flavor && (strstr(bootargs.flavor,"reiserfs") != NULL)) +#define is_e3 (bootargs.flavor && (strstr (bootargs.flavor, "ext3") != NULL)) int check_for_native_partition (struct fdisk_disk **d, int first); @@ -484,15 +500,16 @@ } else /* ext2 - with reiserfs aware kernel */ { /* this block is the same as the one below */ - sprintf(prtbuf, "mount -t %s %s %s", - type, partition->name, real_mount_point); + sprintf(prtbuf, "mount -t auto %s %s", + partition->name, real_mount_point); status = execlog(prtbuf, LOG_INFO); } } else /* ext2 */ - { /* this block is the same as the one above */ - sprintf(prtbuf, "mount -t %s %s %s", - type, partition->name, real_mount_point); + { /* this block is the same as the one above + will detect ext3 or ext2 automaticaly */ + sprintf(prtbuf, "mount -t auto %s %s", + partition->name, real_mount_point); status = execlog(prtbuf, LOG_INFO); } @@ -579,14 +596,13 @@ int init_linux (void) { struct fdisk_partition *p; - int Oflag, cflag, status; - + int Oflag, e3flag = DLG_NO, cflag, status; + if (is_rfs) { if (!twoButtonBox (_("Ext2 is the defacto standard filesystem for GNU/Linux. It is well tested and proven. It supports extended file attributes, and has more maintenance utilities.\n\nReiserFS is newer, faster, more space efficient, and has meta-data journalling.\n\nIf in doubt, use Ext2.\n\nWould you like to create an Ext2 or a ReiserFS filesystem?"), _("Choose Filesystem Type"), _("Ext2"), _("ReiserFS"), 1)) return (init_reiser()); } - sync(); p = select_not_mounted(_("Please select the partition to initialize as a Linux \"ext2\" filesystem.") ,_("Select Partition"),1,FSTYPE_EXT2); if (! p) @@ -598,10 +614,13 @@ if (! bootargs.isquiet) { #if #cpu(arm) /* ARM wants ext2 from kernel 2.0 for the boot-loader */ - Oflag = yesNoBox(_("This 2.2 version of the Linux kernel has new \"ext2\" filesystem features not present in earlier kernel versions. Using these features, however, means that you will not be able to use this filesystem with earlier kernels, such as Linux 2.0 or with the Netwinder firmware.\n\nDo you want to retain Linux kernel 2.0 compatibility?"), _("Pre-2.2 Linux Kernel Compatibility?")); + Oflag = yesNoBox(_("This version of the Linux kernel has new \"ext2\" filesystem features not present in kernel versions prior to 2.2.x. Using these features, however, means that you will not be able to use this filesystem with earlier kernels, such as Linux 2.0 or with the Netwinder firmware.\n\nDo you want to retain Linux kernel 2.0 compatibility?"), _("Pre-2.2 Linux Kernel Compatibility?")); #else + if(is_e3) { + e3flag = twoButtonBox( _("This set of boot floppies has support for the new Journaling Extension for the Ext2 filesystem, also known as Ext3. Journaling means faster recovery process after crashes and better performance in certain conditions.\n\nBE WARNED:Though stable enough for most people, Journaling feature is new and not well-tested. It is suspected to have bugs affecting the Quota support.\n\nEnable Ext3 support and create Journal on this filesystem?\n"), _("Ext3 Journaling support?"), _("Yes"), _("No"), 1); + } /* nobody else needs the old linux 2.0 version ext2 */ - Oflag = twoButtonBox( _("This 2.2 version of the Linux kernel has new \"ext2\" filesystem features not present in earlier kernel versions. Using these features, however, means that you will not be able to use this filesystem with earlier kernels, such as Linux 2.0.\n\nDo you want to retain Linux kernel 2.0 compatibility?"), _("Pre-2.2 Linux Kernel Compatibility?"), _("Yes"), _("No"), 2); + Oflag = twoButtonBox( _("This version of the Linux kernel has new \"ext2\" filesystem features not present in kernel versions prior to 2.2.x. Using these features, however, means that you will not be able to use this filesystem with earlier kernels, such as Linux 2.0.\n\nDo you want to retain Linux kernel 2.0 compatibility?"), _("Pre-2.2 Linux Kernel Compatibility?"), _("Yes"), _("No"), 2); #endif } else { /* be quiet and pick the right default */ @@ -609,36 +628,37 @@ Oflag = DLG_YES; #else Oflag = DLG_NO; + e3flag = DLG_NO; #endif } cflag = get_cflag(p->name); if (! bootargs.isquiet) { - sprintf(prtbuf,_("You have chosen to initialize %s as a Linux \"ext2\" filesystem. This will permanently erase any data on this partition. Are you sure you want to do this?"), - p->name); + sprintf(prtbuf,_("You have chosen to initialize %s as a Linux \"ext%s\" filesystem. This will permanently erase any data on this partition. Are you sure you want to do this?"), + p->name, (e3flag == DLG_YES) ? "3" : "2"); if (yesNoBox(prtbuf, _("Are You Sure?")) == DLG_NO) return 1; } - INFOMSG("formatting partition %s as ext2 for kernel %s or better", - p->name, - ( Oflag == DLG_NO ? "2.2" : "2.0")); + INFOMSG("formatting partition %s as ext%s for kernel %s or better", + p->name, (e3flag == DLG_YES) ? "3" : "2", ( Oflag == DLG_NO ? "2.2" : "2.0")); #if #cpu(alpha) /* Alpha-specific workaround for MILO's failure to support 4k blocks */ if (!(srm_boot || strcmp(Arch2, "nautilus") == 0)) - sprintf(prtbuf, "mkfs.ext2 -O none -b 1024 %s %s", - ( cflag ? "-c" : ""), p->name); + sprintf(prtbuf, "mkfs.ext2 -O none -b 1024 %s %s %s", + ( cflag ? "-c" : ""), (e3flag == DLG_YES) ? "-j" : "", p->name); else #endif - sprintf(prtbuf, "mkfs.ext2 %s %s %s", ( Oflag == DLG_NO ? "" : "-O none"), - ( cflag ? "-c" : ""), p->name); + sprintf(prtbuf, "mkfs.ext2 %s %s %s %s", ( Oflag == DLG_NO ? "" : "-O none"), + ( cflag ? "-c" : ""), (e3flag == DLG_YES) ? "-j" : "", p->name); boxSuspend(); printf(CLEAR); if ( Oflag == DLG_YES ) - printf(_("Creating filesystem (with 2.0 kernel compatibility)...\n")); + printf(_("Creating filesystem (with 2.0 kernel compatibility%s)...\n"), + (e3flag == DLG_YES) ? " and Journaling" : ""); else - printf(_("Creating filesystem (for 2.2 kernels only)...\n")); + printf(_("Creating filesystem%s (for 2.2 and newer kernels only)...\n"), (e3flag == DLG_YES) ? " with Journaling" : ""); DEBUGMSG("make filesystem with '%s'", prtbuf); status = system(prtbuf); boxResume();
--- boot-floppies-cvs.orig/utilities/dbootstrap/extract_kernel.c +++ boot-floppies-cvs/utilities/dbootstrap/extract_kernel.c @@ -17,7 +17,7 @@ extern int patidx; char *driver_filenames[] = { "drv12", "drv14", "drv14compact", "drv14idepci", - "drv14ide", "drv14reiserfs", "drv14pmac", "drv14chrp", "drv14prep", + "drv14ide", "drv14reiserfs", "drv14udma100-ext3", "drv14pmac", "drv14chrp", "drv14prep", "drv14apus", "drv14-sun4cdm", "drv14-sun4u", "drv14-sun4dm-pci", "drv14generic", "drv14jensen", "drv14nautilus", NULL };
--- boot-floppies-cvs.orig/utilities/dbootstrap/baseconfig.c +++ boot-floppies-cvs/utilities/dbootstrap/baseconfig.c @@ -273,6 +273,8 @@ else { fsname = "ext2"; + if(is_fstype("/target", "ext3") == 1) + fsname = "ext3"; fsopts="defaults,errors=remount-ro"; pass = 1; }
--- boot-floppies-cvs.orig/scripts/dos/install-udma100-ext3.bat +++ boot-floppies-cvs/scripts/dos/install-udma100-ext3.bat @@ -0,0 +1 @@ +..\dosutils\loadlin linux root=/dev/ram initrd=../images-1.44/ext3/root.bin disksize=1.44 flavor=udma100-ext3
--- boot-floppies-cvs.orig/documentation/README-udma100-ext3 +++ boot-floppies-cvs/documentation/README-udma100-ext3 @@ -0,0 +1,20 @@ +udma100-ext3 variant of boot floppies uses a kernel patched with the latest +ext3 and Hedrick's IDE patch + +The patch supports the Promise and Highpoint chipsets used on EIDE +controler cards or builtin on modern boards with VIA chipset. If you +install the standard kernel-image package you may not be able to +reboot, since the standard package does not contain the necessary IDE +patch. + +An additional extra feature is ext3fs (aka Journaling for ext2). This +extension is up and backward compatible with ext2. Though you must not +expect real reliability and safeness for your data. + +See the file 'kernel-config' for the complete list of devices included +in this flavor. + +See the top-level README.txt file for a description of what the files +in this directory are for. To get a complete description of what +files are required for various installation methods, see the +Installation Manual.
--- boot-floppies-cvs.orig/release.sh +++ boot-floppies-cvs/release.sh @@ -228,7 +228,6 @@ gunzip -c $TOP/config.gz > $release/kernel-config gunzip -c $TOP/config.gz > $release/images-1.44/kernel-config cp $release/images-1.44/kernel-config $release/images-2.88/kernel-config - # safe "flavor" for size in 1.20 1.44; do safedir=$release/images-$size/safe @@ -239,7 +238,7 @@ cp $TOP/documentation/README-safe $safedir/README.txt done - for _flavor in compact ide idepci reiserfs; do + for _flavor in compact ide idepci reiserfs udma100-ext3; do mkdir -p $release/$_flavor cp linux$_flavor $release/$_flavor/linux recode latin1..ibmpc <scripts/dos/install-$_flavor.bat >$release/$_flavor/install.bat @@ -293,19 +292,21 @@ $bfinstall rm -rf images-1.44 - tar cz --remove-files -f bf-common${suffix}.tar.gz *.tgz images-2.88 compact ide idepci reiserfs dosutils kernel-config + tar cz --remove-files -f bf-common${suffix}.tar.gz *.tgz images-2.88 compact ide idepci reiserfs udma100-ext3 dosutils kernel-config echo "tar -xzf bf-common${suffix}.tar.gz ; rm -f bf-common${suffix}.tar.gz" >> \ $bfinstall rmdir images-2.88/compact rmdir images-2.88/ide rmdir images-2.88/idepci rmdir images-2.88/reiserfs + rmdir images-2.88/udma100-ext3 rmdir images-2.88 rmdir compact rmdir ide rmdir idepci rmdir reiserfs rmdir dosutils + rmdir udma100-ext3 tar cz --remove-files -f bf-misc${suffix}.tar.gz \ README.txt install.bat linux md5sum.txt \
--- boot-floppies-cvs.orig/Makefile +++ boot-floppies-cvs/Makefile @@ -64,7 +64,9 @@ $(MAKE) driverside.tgz $(MAKE) resc1440idepci.bin $(MAKE) resc1440reiserfs.bin + $(MAKE) resc1440udma100-ext3.bin $(MAKE) driversreiserfs.tgz + $(MAKE) driversudma100-ext3.tgz $(MAKE) driversidepci.tgz $(MAKE) resc1200.bin resc1200-s.bin $(MAKE) resc2880.bin @@ -72,6 +74,7 @@ $(MAKE) resc2880ide.bin $(MAKE) resc2880idepci.bin $(MAKE) resc2880reiserfs.bin + $(MAKE) resc2880udma100-ext3.bin $(MAKE) drivers.tgz else ifeq ($(architecture), m68k)
Attachment:
pgpdLjit7bfX3.pgp
Description: PGP signature