> 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)
PGP signature