diff -u --recursive --new-file v2.5.0/linux/Makefile linux/Makefile
--- v2.5.0/linux/Makefile	Thu Nov 22 22:23:44 2001
+++ linux/Makefile	Sat Nov 24 11:31:59 2001
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 5
-SUBLEVEL = 0
-EXTRAVERSION =
+SUBLEVEL = 1
+EXTRAVERSION =-pre1
 
 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 
diff -u --recursive --new-file v2.5.0/linux/README linux/README
--- v2.5.0/linux/README	Fri Oct  5 12:10:00 2001
+++ linux/README	Sat Nov 24 11:29:19 2001
@@ -1,9 +1,12 @@
-	Linux kernel release 2.4.xx
+	Linux kernel release 2.5.xx
 
-These are the release notes for Linux version 2.4.  Read them carefully,
+These are the release notes for Linux version 2.5.  Read them carefully,
 as they tell you what this is all about, explain how to install the
 kernel, and what to do if something goes wrong. 
 
+NOTE! As with all odd-numbered releases, 2.5.x is a development kernel. 
+For stable kernels, see the 2.4.x maintained by Marcelo Tosatti.
+
 WHAT IS LINUX?
 
   Linux is a Unix clone written from scratch by Linus Torvalds with
@@ -52,7 +55,7 @@
    directory where you have permissions (eg. your home directory) and
    unpack it:
 
-		gzip -cd linux-2.4.XX.tar.gz | tar xvf -
+		gzip -cd linux-2.5.XX.tar.gz | tar xvf -
 
    Replace "XX" with the version number of the latest kernel.
 
@@ -61,7 +64,7 @@
    files.  They should match the library, and not get messed up by
    whatever the kernel-du-jour happens to be.
 
- - You can also upgrade between 2.4.xx releases by patching.  Patches are
+ - You can also upgrade between 2.5.xx releases by patching.  Patches are
    distributed in the traditional gzip and the new bzip2 format.  To
    install by patching, get all the newer patch files, enter the
    directory in which you unpacked the kernel source and execute:
@@ -96,7 +99,7 @@
 
 SOFTWARE REQUIREMENTS
 
-   Compiling and running the 2.4.xx kernels requires up-to-date
+   Compiling and running the 2.5.xx kernels requires up-to-date
    versions of various software packages.  Consult
    ./Documentation/Changes for the minimum version numbers required
    and how to get updates for these packages.  Beware that using
diff -u --recursive --new-file v2.5.0/linux/drivers/net/8139too.c linux/drivers/net/8139too.c
--- v2.5.0/linux/drivers/net/8139too.c	Fri Nov  9 13:45:35 2001
+++ linux/drivers/net/8139too.c	Sat Nov 24 11:26:37 2001
@@ -1270,6 +1270,7 @@
 	tp->full_duplex = tp->duplex_lock;
 	tp->tx_flag = (TX_FIFO_THRESH << 11) & 0x003f0000;
 	tp->twistie = 1;
+	tp->time_to_die = 0;
 
 	rtl8139_init_ring (dev);
 	rtl8139_hw_start (dev);
diff -u --recursive --new-file v2.5.0/linux/fs/inode.c linux/fs/inode.c
--- v2.5.0/linux/fs/inode.c	Thu Nov 22 10:38:31 2001
+++ linux/fs/inode.c	Sat Nov 24 11:26:37 2001
@@ -1065,24 +1065,27 @@
 			if (inode->i_state != I_CLEAR)
 				BUG();
 		} else {
-			if (!list_empty(&inode->i_hash) && sb && sb->s_root) {
+			if (!list_empty(&inode->i_hash)) {
 				if (!(inode->i_state & (I_DIRTY|I_LOCK))) {
 					list_del(&inode->i_list);
 					list_add(&inode->i_list, &inode_unused);
 				}
 				inodes_stat.nr_unused++;
 				spin_unlock(&inode_lock);
-				return;
-			} else {
-				list_del_init(&inode->i_list);
+				if (!sb || sb->s_flags & MS_ACTIVE)
+					return;
+				write_inode_now(inode, 1);
+				spin_lock(&inode_lock);
+				inodes_stat.nr_unused--;
 				list_del_init(&inode->i_hash);
-				inode->i_state|=I_FREEING;
-				inodes_stat.nr_inodes--;
-				spin_unlock(&inode_lock);
-				if (inode->i_data.nrpages)
-					truncate_inode_pages(&inode->i_data, 0);
-				clear_inode(inode);
 			}
+			list_del_init(&inode->i_list);
+			inode->i_state|=I_FREEING;
+			inodes_stat.nr_inodes--;
+			spin_unlock(&inode_lock);
+			if (inode->i_data.nrpages)
+				truncate_inode_pages(&inode->i_data, 0);
+			clear_inode(inode);
 		}
 		destroy_inode(inode);
 	}
diff -u --recursive --new-file v2.5.0/linux/fs/super.c linux/fs/super.c
--- v2.5.0/linux/fs/super.c	Wed Nov 21 14:05:29 2001
+++ linux/fs/super.c	Sat Nov 24 11:26:37 2001
@@ -462,6 +462,7 @@
 	lock_super(s);
 	if (!type->read_super(s, data, flags & MS_VERBOSE ? 1 : 0))
 		goto out_fail;
+	s->s_flags |= MS_ACTIVE;
 	unlock_super(s);
 	/* tell bdcache that we are going to keep this one */
 	if (bdev)
@@ -614,6 +615,7 @@
 	lock_super(s);
 	if (!fs_type->read_super(s, data, flags & MS_VERBOSE ? 1 : 0))
 		goto out_fail;
+	s->s_flags |= MS_ACTIVE;
 	unlock_super(s);
 	get_filesystem(fs_type);
 	path_release(&nd);
@@ -695,6 +697,7 @@
 		lock_super(s);
 		if (!fs_type->read_super(s, data, flags & MS_VERBOSE ? 1 : 0))
 			goto out_fail;
+		s->s_flags |= MS_ACTIVE;
 		unlock_super(s);
 		get_filesystem(fs_type);
 		return s;
@@ -739,6 +742,7 @@
 	dput(root);
 	fsync_super(sb);
 	lock_super(sb);
+	sb->s_flags &= ~MS_ACTIVE;
 	invalidate_inodes(sb);	/* bad name - it should be evict_inodes() */
 	if (sop) {
 		if (sop->write_super && sb->s_dirt)
diff -u --recursive --new-file v2.5.0/linux/include/linux/fs.h linux/include/linux/fs.h
--- v2.5.0/linux/include/linux/fs.h	Thu Nov 22 11:46:19 2001
+++ linux/include/linux/fs.h	Sat Nov 24 11:26:37 2001
@@ -110,6 +110,7 @@
 #define MS_BIND		4096
 #define MS_REC		16384
 #define MS_VERBOSE	32768
+#define MS_ACTIVE	(1<<30)
 #define MS_NOUSER	(1<<31)
 
 /*
