## Automatically generated incremental diff
## From:   linux-2.4.17-pre8
## To:     linux-2.4.17-rc1
## Robot:  $Id: make-incremental-diff,v 1.9 2001/12/10 00:06:56 hpa Exp $

diff -urN linux-2.4.17-pre8/Documentation/Configure.help linux/Documentation/Configure.help
--- linux-2.4.17-pre8/Documentation/Configure.help	Thu Dec 13 13:52:25 2001
+++ linux/Documentation/Configure.help	Thu Dec 13 13:52:27 2001
@@ -2,7 +2,7 @@
 #	Eric S. Raymond <mailto:esr@thyrsus.com>
 #	Steven Cole <mailto:elenstev@mesatop.com>
 #
-# Merged version 2.67: current with 2.4.17-pre5/2.5.1-pre6.
+# Merged version 2.69: current with 2.4.17-pre8/2.5.1-pre10.
 #
 # This version of the Linux kernel configuration help texts
 # corresponds to kernel versions 2.4.x and 2.5.x.
@@ -69,7 +69,7 @@
 # Explain why someone configuring a kernel might want to select your
 # option.
 #
-# All this was shamelessly stolen from several different sources. Many
+# All this was shamelessly stolen from numerous different sources. Many
 # thanks to all the contributors. Feel free to use these help texts in
 # your own kernel configuration tools. The texts are copyrighted (c)
 # 1995-2000 by Axel Boldt and many others and are governed by the GNU
@@ -886,7 +886,7 @@
 
 IGNORE word93 Validation BITS
 CONFIG_IDEDMA_IVB
-  There are unclear terms is ATA-4 and ATA-5 standards how certain
+  There are unclear terms in ATA-4 and ATA-5 standards how certain
   hardware (an 80c ribbon) should be detected. Different interpretations
   of the standards have been released in hardware. This causes problems:
   for example, a host with Ultra Mode 4 (or higher) will not run
@@ -11067,17 +11067,6 @@
 
   If unsure, say N.
 
-VIA Rhine MMIO support (EXPERIMENTAL)
-CONFIG_VIA_RHINE_MMIO
-  This instructs the driver to use PCI shared memory (MMIO) instead of
-  programmed I/O ports (PIO). Enabling this gives an improvement in
-  processing time in parts of the driver.
-
-  It is not known if this works reliably on all "rhine" based cards,
-  but it has been tested successfully on some DFE-530TX adapters.
-
-  If unsure, say N.
-
 Davicom DM910x/DM980x support
 CONFIG_DM9102
   This driver is for DM9102(A)/DM9132/DM9801 compatible PCI cards from
@@ -12491,6 +12480,8 @@
 Cirrus CDB89712 evaluation board mappings
 CONFIG_MTD_CDB89712
   This enables access to the flash or ROM chips on the CDB89712 board.
+  (This board has 8 MB of Intel Strataflash, a 128 byte boot ROM, and 48 KB of
+  internal SRAM.  This driver provides MTD devices for all three components.)
   If you have such a board, say 'Y'.
 
 Detect non-CFI AMD/JEDEC-compatible flash chips
@@ -13878,7 +13869,7 @@
 Ext3 journalling file system support (EXPERIMENTAL)
 CONFIG_EXT3_FS
   This is the journalling version of the Second extended file system
-  (often called ext2), the de facto standard Linux file system
+  (often called ext3), the de facto standard Linux file system
   (method to organize files on a storage device) for hard disks.
 
   The journalling code included in this driver means you do not have
@@ -17540,6 +17531,12 @@
  You can compile this driver directly into the kernel, or use
  it as a module.  The module will be called sbc60xxwdt.o.
 
+Eurotech CPU-1220/1410 Watchdog Timer
+CONFIG_EUROTECH_WDT
+  Enable support for the watchdog timer on the Eurotech CPU-1220 and 
+  CPU-1410 cards.  These are PC/104 SBCs. Spec sheets and product 
+  information are at <http://www.eurotech.it/>.
+
 Enhanced Real Time Clock Support
 CONFIG_RTC
   If you say Y here and create a character special file /dev/rtc with
@@ -19119,6 +19116,12 @@
   Enable this if you like to use ISDN in US on a NI1 basic rate
   interface.
 
+# 2.4 tree only
+Maximum number of cards supported by HiSax
+CONFIG_HISAX_MAX_CARDS
+  This is used to allocate a driver-internal structure array with one
+  entry for each HiSax card on your system.
+
 Teles 16.0/8.0
 CONFIG_HISAX_16_0
   This enables HiSax support for the Teles ISDN-cards S0-16.0, S0-8
@@ -21944,6 +21947,20 @@
   If you have any questions or comments about the  Compaq Personal
   Server, send e-mail to skiff@crl.dec.com.
 
+Cirrus Logic EDB-7211 evaluation board
+CONFIG_ARCH_EDB7211
+  Say Y here if you intend to run this kernel on a Cirrus Logic EDB-7211
+  evaluation board.
+
+EP7211 infrared support
+CONFIG_EP7211_IR
+  Say Y here if you wish to use the infrared port on the EP7211. Note
+  that you can't use the first UART and the infrared port at the same
+  time, and that the EP7211 only supports SIR mode, at speeds up to
+  115.2 kbps. To use the I/R port, you will need to get the source to
+  irda-utils and apply the patch at
+  <http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2001-June/003510.html>.
+
 Assabet
 CONFIG_SA1100_ASSABET
   Say Y here if you are using the Intel(R) StrongARM(R) SA-1110
@@ -21979,7 +21996,35 @@
 CONFIG_SA1100_GRAPHICSCLIENT
   Say Y here if you are using an Applied Data Systems Intel(R)
   StrongARM(R) SA-1100 based Graphics Client SBC.  See
-  <http://www.flatpanels.com/> for information on this system.
+  <http://www.applieddata.net/> for information on this system.
+
+GraphicsMaster
+CONFIG_SA1100_GRAPHICSMASTER
+  Say Y here if you are using an Applied Data Systems Intel(R)
+  StrongARM(R) SA-1100 based Graphics Master SBC with SA-1111
+  StrongARM companion chip.  See
+  <http://www.applieddata.net/products_masterSpec.asp> for information
+  on this system.
+
+ADSBitsy
+CONFIG_SA1100_ADSBITSY
+  Say Y here if you are using Applied Data Systems Intel(R)
+  StrongARM(R) 1110 based Bitsy, 3 x 5 inches in size, Compaq - IPAQ -
+  like platform. See
+  <http://www.applieddata.net/products_bitsySpec.asp> for more
+  information.
+
+ITSY
+CONFIG_SA1100_ITSY
+  Say Y here if you are using the Compaq Itsy experimental pocket
+  computer. See <http://research.compaq.com/wrl/projects/itsy/> for
+  more information.
+
+PLEB
+CONFIG_SA1100_PLEB
+  Say Y here if you are using a Portable Linux Embedded Board
+  (also known as PLEB). See <http://www.cse.unsw.edu.au/~pleb/>
+  for more information.
 
 CerfBoard
 CONFIG_SA1100_CERF
@@ -22107,6 +22152,50 @@
   Say Y if you want support for the SA-110 processor.
   Otherwise, say N.
 
+Tulsa
+CONFIG_SA1100_PFS168
+  The Radisys Corp. PFS-168 (aka Tulsa) is an IntelŪ StrongArmŪ SA-1110 based
+  computer which includes the SA-1111 Microprocessor Companion Chip and other
+  custom I/O designed to add connectivity and multimedia features for vending
+  and business machine applications. Say Y here if you require support for
+  this target.
+
+HP Jornada 720
+CONFIG_SA1100_JORNADA720
+  Say Y here if you want to build a kernel for the HP Jornada 720
+  handheld computer.  See <http://www.hp.com/jornada/products/720>
+  for details.
+
+InHand Electronics OmniMeter
+CONFIG_SA1100_OMNIMETER
+  Say Y here if you are using the inhand electronics OmniMeter.  See
+  <http://www.inhandelectronics.com/html/omni1.html> for details.
+
+Load kernel using Angel Debug Monitor
+CONFIG_ANGELBOOT
+  Say Y if you plan to load the kernel using Angel, ARM Ltd's target
+  debug stub.  If you are not using Angel, you must say N.  It is
+  important to get this setting correct.
+
+CDB89712
+CONFIG_ARCH_CDB89712
+  This is an evaluation board from Cirrus for the CS89712 processor.  The
+  board includes 2 serial ports, Ethernet, IRDA, and expansion headers.
+  It comes with 16 MB SDRAM and 8 MB flash ROM.
+
+CLPS-711X internal ROM bootstrap
+CONFIG_EP72XX_ROM_BOOT
+  If you say Y here, your CLPS711x-based kernel will use the bootstrap
+  mode memory map instead of the normal memory map.
+
+  Processors derived from the Cirrus CLPS-711X core support two boot modes.
+  Normal mode boots from the external memory device at CS0.  Bootstrap mode
+  rearranges parts of the memory map, placing an internal 128 byte bootstrap
+  ROM at CS0.  This option performs the address map changes required to
+  support booting in this mode.
+
+  You almost surely want to say N here.
+
 Math emulation
 CONFIG_FPE_NWFPE
   Say Y to include the NWFPE floating point emulator in the kernel.
@@ -22530,6 +22619,27 @@
 
   Please note that the driver is still experimental.  And of course,
   you will need both USB and IrDA support in your kernel...
+
+Datafab MDCFE-B Compact Flash Reader support
+CONFIG_USB_STORAGE_DATAFAB
+  This option enables a sub-driver of the USB Mass Storage driver.  These
+  sub-drivers are considered experimental, and should only be used by very
+  brave people.  System crashes and other bad things are likely to occur if
+  you use this driver.  If in doubt, select N.
+
+HP CD-Writer 82xx support
+CONFIG_USB_STORAGE_HP8200e
+  This option enables a sub-driver of the USB Mass Storage driver.  These
+  sub-drivers are considered experimental, and should only be used by very
+  brave people.  System crashes and other bad things are likely to occur if
+  you use this driver.  If in doubt, select N.
+
+Lexar Jumpshot Compact Flash Reader
+CONFIG_USB_STORAGE_JUMPSHOT       
+  This option enables a sub-driver of the USB Mass Storage driver.  These
+  sub-drivers are considered experimental, and should only be used by very
+  brave people.  System crashes and other bad things are likely to occur if
+  you use this driver.  If in doubt, select N.
 
 Winbond W83977AF IrDA Device Driver
 CONFIG_WINBOND_FIR
diff -urN linux-2.4.17-pre8/Makefile linux/Makefile
--- linux-2.4.17-pre8/Makefile	Thu Dec 13 13:52:25 2001
+++ linux/Makefile	Thu Dec 13 13:52:27 2001
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 4
 SUBLEVEL = 17
-EXTRAVERSION = -pre8
+EXTRAVERSION = -rc1
 
 KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
 
diff -urN linux-2.4.17-pre8/drivers/char/console.c linux/drivers/char/console.c
--- linux-2.4.17-pre8/drivers/char/console.c	Thu Dec 13 13:52:25 2001
+++ linux/drivers/char/console.c	Thu Dec 13 13:52:28 2001
@@ -100,6 +100,7 @@
 #include <linux/tqueue.h>
 #include <linux/bootmem.h>
 #include <linux/pm.h>
+#include <linux/smp_lock.h>
 
 #include <asm/io.h>
 #include <asm/system.h>
@@ -2348,17 +2349,25 @@
 	set_leds();
 }
 
+/*
+ * we can race here against con_close, so we grab the bkl
+ * and check the pointer before calling set_cursor
+ */
 static void con_flush_chars(struct tty_struct *tty)
 {
-	struct vt_struct *vt = (struct vt_struct *)tty->driver_data;
+	struct vt_struct *vt;
 
 	if (in_interrupt())	/* from flush_to_ldisc */
 		return;
 
 	pm_access(pm_con);
+	lock_kernel();
 	acquire_console_sem();
-	set_cursor(vt->vc_num);
+	vt = (struct vt_struct *)tty->driver_data;
+	if (vt)
+		set_cursor(vt->vc_num);
 	release_console_sem();
+	unlock_kernel();
 }
 
 /*
diff -urN linux-2.4.17-pre8/drivers/net/ns83820.c linux/drivers/net/ns83820.c
--- linux-2.4.17-pre8/drivers/net/ns83820.c	Thu Dec 13 13:52:26 2001
+++ linux/drivers/net/ns83820.c	Thu Dec 13 13:52:28 2001
@@ -1058,7 +1058,8 @@
 		if (!nr_frags)
 			break;
 
-		buf = pci_map_single_high(dev->pci_dev, frag->page, 0,
+		buf = pci_map_single_high(dev->pci_dev, frag->page,
+					  frag->page_offset,
 					  frag->size, PCI_DMA_TODEVICE);
 		dprintk("frag: buf=%08Lx  page=%08lx\n",
 			(long long)buf, (long)(frag->page - mem_map));
diff -urN linux-2.4.17-pre8/drivers/pcmcia/i82092.c linux/drivers/pcmcia/i82092.c
--- linux-2.4.17-pre8/drivers/pcmcia/i82092.c	Fri Nov  9 13:45:35 2001
+++ linux/drivers/pcmcia/i82092.c	Thu Dec 13 13:52:28 2001
@@ -42,7 +42,7 @@
 	name:           "i82092aa",
 	id_table:       i82092aa_pci_ids,
 	probe:          i82092aa_pci_probe,
-	remove:         i82092aa_pci_remove,
+	remove:         __devexit_p(i82092aa_pci_remove),
 	suspend:        NULL,
 	resume:         NULL 
 };
@@ -160,7 +160,7 @@
 	return 0;
 }
 
-static void __exit i82092aa_pci_remove(struct pci_dev *dev)
+static void __devexit i82092aa_pci_remove(struct pci_dev *dev)
 {
 	enter("i82092aa_pci_remove");
 	
diff -urN linux-2.4.17-pre8/drivers/scsi/aacraid/aacraid.h linux/drivers/scsi/aacraid/aacraid.h
--- linux-2.4.17-pre8/drivers/scsi/aacraid/aacraid.h	Thu Dec 13 13:52:26 2001
+++ linux/drivers/scsi/aacraid/aacraid.h	Thu Dec 13 13:52:28 2001
@@ -1,4 +1,4 @@
-#define dprintk(x)	printk x
+#define dprintk(x)
 
 #define AAC_NUM_FIB	128
 #define AAC_NUM_IO_FIB	116
diff -urN linux-2.4.17-pre8/fs/block_dev.c linux/fs/block_dev.c
--- linux-2.4.17-pre8/fs/block_dev.c	Thu Dec 13 13:52:26 2001
+++ linux/fs/block_dev.c	Thu Dec 13 13:52:29 2001
@@ -329,6 +329,7 @@
 			inode->i_bdev = new_bdev;
 			inode->i_data.a_ops = &def_blk_aops;
 			inode->i_data.gfp_mask = GFP_USER;
+			inode->i_mode = S_IFBLK;
 			spin_lock(&bdev_lock);
 			bdev = bdfind(dev, head);
 			if (!bdev) {
diff -urN linux-2.4.17-pre8/fs/buffer.c linux/fs/buffer.c
--- linux-2.4.17-pre8/fs/buffer.c	Thu Dec 13 13:52:26 2001
+++ linux/fs/buffer.c	Thu Dec 13 13:52:29 2001
@@ -2003,12 +2003,12 @@
 {
 	int i, nr_blocks, retval;
 	unsigned long * blocks = iobuf->blocks;
-	struct buffer_head bh;
 
-	bh.b_dev = inode->i_dev;
 	nr_blocks = iobuf->length / blocksize;
 	/* build the blocklist */
 	for (i = 0; i < nr_blocks; i++, blocknr++) {
+		struct buffer_head bh;
+
 		bh.b_state = 0;
 		bh.b_dev = inode->i_dev;
 		bh.b_size = blocksize;
@@ -2034,7 +2034,7 @@
 		blocks[i] = bh.b_blocknr;
 	}
 
-	retval = brw_kiovec(rw, 1, &iobuf, bh.b_dev, iobuf->blocks, blocksize);
+	retval = brw_kiovec(rw, 1, &iobuf, inode->i_dev, iobuf->blocks, blocksize);
 
  out:
 	return retval;
diff -urN linux-2.4.17-pre8/fs/namespace.c linux/fs/namespace.c
--- linux-2.4.17-pre8/fs/namespace.c	Thu Dec 13 13:52:26 2001
+++ linux/fs/namespace.c	Thu Dec 13 13:52:29 2001
@@ -522,9 +522,11 @@
 
 	if (mnt) {
 		err = graft_tree(mnt, nd);
-		if (err)
+		if (err) {
+			spin_lock(&dcache_lock);
 			umount_tree(mnt);
-		else
+			spin_unlock(&dcache_lock);
+		} else
 			mntput(mnt);
 	}
 
diff -urN linux-2.4.17-pre8/fs/nls/nls_big5.c linux/fs/nls/nls_big5.c
--- linux-2.4.17-pre8/fs/nls/nls_big5.c	Mon Oct 16 12:58:51 2000
+++ linux/fs/nls/nls_big5.c	Thu Dec 13 13:52:29 2001
@@ -42,6 +42,7 @@
 
 module_init(init_nls_big5)
 module_exit(exit_nls_big5)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_cp932.c linux/fs/nls/nls_cp932.c
--- linux-2.4.17-pre8/fs/nls/nls_cp932.c	Fri Apr  6 10:51:19 2001
+++ linux/fs/nls/nls_cp932.c	Thu Dec 13 13:52:29 2001
@@ -7904,6 +7904,7 @@
 
 module_init(init_nls_cp932)
 module_exit(exit_nls_cp932)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_cp936.c linux/fs/nls/nls_cp936.c
--- linux-2.4.17-pre8/fs/nls/nls_cp936.c	Fri Jul 21 15:19:51 2000
+++ linux/fs/nls/nls_cp936.c	Thu Dec 13 13:52:29 2001
@@ -11024,6 +11024,7 @@
 
 module_init(init_nls_cp936)
 module_exit(exit_nls_cp936)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_cp949.c linux/fs/nls/nls_cp949.c
--- linux-2.4.17-pre8/fs/nls/nls_cp949.c	Fri Jul 21 15:19:51 2000
+++ linux/fs/nls/nls_cp949.c	Thu Dec 13 13:52:29 2001
@@ -13941,6 +13941,7 @@
 
 module_init(init_nls_cp949)
 module_exit(exit_nls_cp949)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_cp950.c linux/fs/nls/nls_cp950.c
--- linux-2.4.17-pre8/fs/nls/nls_cp950.c	Fri Jul 21 15:19:51 2000
+++ linux/fs/nls/nls_cp950.c	Thu Dec 13 13:52:29 2001
@@ -9480,6 +9480,7 @@
 
 module_init(init_nls_cp950)
 module_exit(exit_nls_cp950)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_euc-jp.c linux/fs/nls/nls_euc-jp.c
--- linux-2.4.17-pre8/fs/nls/nls_euc-jp.c	Fri Apr  6 10:51:19 2001
+++ linux/fs/nls/nls_euc-jp.c	Thu Dec 13 13:52:29 2001
@@ -581,6 +581,7 @@
 
 module_init(init_nls_euc_jp)
 module_exit(exit_nls_euc_jp)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_euc-kr.c linux/fs/nls/nls_euc-kr.c
--- linux-2.4.17-pre8/fs/nls/nls_euc-kr.c	Mon Oct 16 12:58:51 2000
+++ linux/fs/nls/nls_euc-kr.c	Thu Dec 13 13:52:29 2001
@@ -42,6 +42,7 @@
 
 module_init(init_nls_euc_kr)
 module_exit(exit_nls_euc_kr)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_gb2312.c linux/fs/nls/nls_gb2312.c
--- linux-2.4.17-pre8/fs/nls/nls_gb2312.c	Mon Oct 16 12:58:51 2000
+++ linux/fs/nls/nls_gb2312.c	Thu Dec 13 13:52:29 2001
@@ -42,6 +42,7 @@
 
 module_init(init_nls_gb2312)
 module_exit(exit_nls_gb2312)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_iso8859-1.c linux/fs/nls/nls_iso8859-1.c
--- linux-2.4.17-pre8/fs/nls/nls_iso8859-1.c	Tue Jul 18 22:48:33 2000
+++ linux/fs/nls/nls_iso8859-1.c	Thu Dec 13 13:52:29 2001
@@ -254,6 +254,7 @@
 
 module_init(init_nls_iso8859_1)
 module_exit(exit_nls_iso8859_1)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_iso8859-13.c linux/fs/nls/nls_iso8859-13.c
--- linux-2.4.17-pre8/fs/nls/nls_iso8859-13.c	Sat May 19 17:47:55 2001
+++ linux/fs/nls/nls_iso8859-13.c	Thu Dec 13 13:52:29 2001
@@ -282,6 +282,7 @@
 
 module_init(init_nls_iso8859_13)
 module_exit(exit_nls_iso8859_13)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_iso8859-14.c linux/fs/nls/nls_iso8859-14.c
--- linux-2.4.17-pre8/fs/nls/nls_iso8859-14.c	Tue Jul 18 22:48:33 2000
+++ linux/fs/nls/nls_iso8859-14.c	Thu Dec 13 13:52:29 2001
@@ -338,6 +338,7 @@
 
 module_init(init_nls_iso8859_14)
 module_exit(exit_nls_iso8859_14)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_iso8859-15.c linux/fs/nls/nls_iso8859-15.c
--- linux-2.4.17-pre8/fs/nls/nls_iso8859-15.c	Fri Jul 21 15:19:51 2000
+++ linux/fs/nls/nls_iso8859-15.c	Thu Dec 13 13:52:29 2001
@@ -304,6 +304,7 @@
 
 module_init(init_nls_iso8859_15)
 module_exit(exit_nls_iso8859_15)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_iso8859-2.c linux/fs/nls/nls_iso8859-2.c
--- linux-2.4.17-pre8/fs/nls/nls_iso8859-2.c	Fri Jul 21 15:19:51 2000
+++ linux/fs/nls/nls_iso8859-2.c	Thu Dec 13 13:52:29 2001
@@ -305,6 +305,7 @@
 
 module_init(init_nls_iso8859_2)
 module_exit(exit_nls_iso8859_2)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_iso8859-3.c linux/fs/nls/nls_iso8859-3.c
--- linux-2.4.17-pre8/fs/nls/nls_iso8859-3.c	Fri Jul 21 15:19:51 2000
+++ linux/fs/nls/nls_iso8859-3.c	Thu Dec 13 13:52:29 2001
@@ -305,6 +305,7 @@
 
 module_init(init_nls_iso8859_3)
 module_exit(exit_nls_iso8859_3)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_iso8859-4.c linux/fs/nls/nls_iso8859-4.c
--- linux-2.4.17-pre8/fs/nls/nls_iso8859-4.c	Fri Jul 21 15:19:51 2000
+++ linux/fs/nls/nls_iso8859-4.c	Thu Dec 13 13:52:29 2001
@@ -305,6 +305,7 @@
 
 module_init(init_nls_iso8859_4)
 module_exit(exit_nls_iso8859_4)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_iso8859-5.c linux/fs/nls/nls_iso8859-5.c
--- linux-2.4.17-pre8/fs/nls/nls_iso8859-5.c	Fri Jul 21 15:19:51 2000
+++ linux/fs/nls/nls_iso8859-5.c	Thu Dec 13 13:52:29 2001
@@ -269,6 +269,7 @@
 
 module_init(init_nls_iso8859_5)
 module_exit(exit_nls_iso8859_5)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_iso8859-6.c linux/fs/nls/nls_iso8859-6.c
--- linux-2.4.17-pre8/fs/nls/nls_iso8859-6.c	Fri Jul 21 15:19:51 2000
+++ linux/fs/nls/nls_iso8859-6.c	Thu Dec 13 13:52:29 2001
@@ -260,6 +260,7 @@
 
 module_init(init_nls_iso8859_6)
 module_exit(exit_nls_iso8859_6)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_iso8859-7.c linux/fs/nls/nls_iso8859-7.c
--- linux-2.4.17-pre8/fs/nls/nls_iso8859-7.c	Fri Jul 21 15:19:51 2000
+++ linux/fs/nls/nls_iso8859-7.c	Thu Dec 13 13:52:29 2001
@@ -314,6 +314,7 @@
 
 module_init(init_nls_iso8859_7)
 module_exit(exit_nls_iso8859_7)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_iso8859-8.c linux/fs/nls/nls_iso8859-8.c
--- linux-2.4.17-pre8/fs/nls/nls_iso8859-8.c	Fri Apr  6 10:51:19 2001
+++ linux/fs/nls/nls_iso8859-8.c	Thu Dec 13 13:52:29 2001
@@ -42,6 +42,7 @@
 
 module_init(init_nls_iso8859_8)
 module_exit(exit_nls_iso8859_8)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_iso8859-9.c linux/fs/nls/nls_iso8859-9.c
--- linux-2.4.17-pre8/fs/nls/nls_iso8859-9.c	Fri Jul 21 15:19:51 2000
+++ linux/fs/nls/nls_iso8859-9.c	Thu Dec 13 13:52:29 2001
@@ -269,6 +269,7 @@
 
 module_init(init_nls_iso8859_9)
 module_exit(exit_nls_iso8859_9)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_koi8-r.c linux/fs/nls/nls_koi8-r.c
--- linux-2.4.17-pre8/fs/nls/nls_koi8-r.c	Fri Jul 21 15:19:51 2000
+++ linux/fs/nls/nls_koi8-r.c	Thu Dec 13 13:52:29 2001
@@ -320,6 +320,7 @@
 
 module_init(init_nls_koi8_r)
 module_exit(exit_nls_koi8_r)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_koi8-ru.c linux/fs/nls/nls_koi8-ru.c
--- linux-2.4.17-pre8/fs/nls/nls_koi8-ru.c	Sat May 19 17:47:55 2001
+++ linux/fs/nls/nls_koi8-ru.c	Thu Dec 13 13:52:29 2001
@@ -80,6 +80,7 @@
 
 module_init(init_nls_koi8_ru)
 module_exit(exit_nls_koi8_ru)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_koi8-u.c linux/fs/nls/nls_koi8-u.c
--- linux-2.4.17-pre8/fs/nls/nls_koi8-u.c	Sat May 19 17:47:55 2001
+++ linux/fs/nls/nls_koi8-u.c	Thu Dec 13 13:52:29 2001
@@ -327,6 +327,7 @@
 
 module_init(init_nls_koi8_u)
 module_exit(exit_nls_koi8_u)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_sjis.c linux/fs/nls/nls_sjis.c
--- linux-2.4.17-pre8/fs/nls/nls_sjis.c	Mon Oct 16 12:58:51 2000
+++ linux/fs/nls/nls_sjis.c	Thu Dec 13 13:52:29 2001
@@ -42,6 +42,7 @@
 
 module_init(init_nls_sjis)
 module_exit(exit_nls_sjis)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_tis-620.c linux/fs/nls/nls_tis-620.c
--- linux-2.4.17-pre8/fs/nls/nls_tis-620.c	Fri Apr  6 10:51:19 2001
+++ linux/fs/nls/nls_tis-620.c	Thu Dec 13 13:52:29 2001
@@ -42,6 +42,7 @@
 
 module_init(init_nls_tis_620)
 module_exit(exit_nls_tis_620)
+MODULE_LICENSE("Dual BSD/GPL");
 
 /*
  * Overrides for Emacs so that we follow Linus's tabbing style.
diff -urN linux-2.4.17-pre8/fs/nls/nls_utf8.c linux/fs/nls/nls_utf8.c
--- linux-2.4.17-pre8/fs/nls/nls_utf8.c	Tue Jul 18 22:48:33 2000
+++ linux/fs/nls/nls_utf8.c	Thu Dec 13 13:52:29 2001
@@ -58,3 +58,4 @@
 
 module_init(init_nls_utf8)
 module_exit(exit_nls_utf8)
+MODULE_LICENSE("Dual BSD/GPL");
diff -urN linux-2.4.17-pre8/mm/filemap.c linux/mm/filemap.c
--- linux-2.4.17-pre8/mm/filemap.c	Thu Dec 13 13:52:26 2001
+++ linux/mm/filemap.c	Thu Dec 13 13:52:29 2001
@@ -1492,8 +1492,8 @@
 	ssize_t retval;
 	int new_iobuf, chunk_size, blocksize_mask, blocksize, blocksize_bits, iosize, progress;
 	struct kiobuf * iobuf;
-	struct inode * inode = filp->f_dentry->d_inode;
-	struct address_space * mapping = inode->i_mapping;
+	struct address_space * mapping = filp->f_dentry->d_inode->i_mapping;
+	struct inode * inode = mapping->host;
 
 	new_iobuf = 0;
 	iobuf = filp->f_iobuf;
diff -urN linux-2.4.17-pre8/mm/memory.c linux/mm/memory.c
--- linux-2.4.17-pre8/mm/memory.c	Thu Dec 13 13:52:26 2001
+++ linux/mm/memory.c	Thu Dec 13 13:52:29 2001
@@ -1114,6 +1114,8 @@
 		ret = 2;
 	}
 
+	mark_page_accessed(page);
+
 	lock_page(page);
 
 	/*
@@ -1184,6 +1186,7 @@
 		flush_page_to_ram(page);
 		entry = pte_mkwrite(pte_mkdirty(mk_pte(page, vma->vm_page_prot)));
 		lru_cache_add(page);
+		mark_page_accessed(page);
 	}
 
 	set_pte(page_table, entry);
@@ -1231,8 +1234,10 @@
 	 */
 	if (write_access && !(vma->vm_flags & VM_SHARED)) {
 		struct page * page = alloc_page(GFP_HIGHUSER);
-		if (!page)
+		if (!page) {
+			page_cache_release(new_page);
 			return -1;
+		}
 		copy_user_highpage(page, new_page, address);
 		page_cache_release(new_page);
 		lru_cache_add(page);
