--- /dev/null
+ fs/Kconfig | 6 +--
+ fs/umsdos/Makefile | 4 +-
+ fs/umsdos/dir.c | 25 +++++++++------
+ fs/umsdos/inode.c | 71 ++++++++++++++++++++++++++++++++------------
+ fs/umsdos/ioctl.c | 17 ++++++----
+ fs/umsdos/namei.c | 2 +
+ fs/umsdos/rdir.c | 1
+ include/linux/umsdos_fs.p | 14 +++-----
+ include/linux/umsdos_fs_i.h | 4 ++
+ 9 files changed, 96 insertions(+), 48 deletions(-)
+
+diff -Naurp linux-260-test8-efs/include/linux/umsdos_fs_i.h linux-260-test8/include/linux/umsdos_fs_i.h
+--- linux-260-test8-efs/include/linux/umsdos_fs_i.h 2003-10-17 14:43:20.000000000 -0700
++++ linux-260-test8/include/linux/umsdos_fs_i.h 2003-10-23 16:13:10.000000000 -0700
+@@ -55,4 +55,8 @@ struct umsdos_inode_info {
+ off_t pos; /* Entry offset in the emd_owner file */
+ };
+
++static inline struct umsdos_inode_info *UMSDOS_I(struct inode *inode)
++{
++ return (struct umsdos_inode_info *)inode->u.generic_ip;
++}
+ #endif
+diff -Naurp linux-260-test8-efs/include/linux/umsdos_fs.p linux-260-test8/include/linux/umsdos_fs.p
+--- linux-260-test8-efs/include/linux/umsdos_fs.p 2003-10-17 14:43:00.000000000 -0700
++++ linux-260-test8/include/linux/umsdos_fs.p 2003-10-23 23:20:36.000000000 -0700
+@@ -37,8 +37,10 @@ void UMSDOS_write_inode (struct inode *,
+ int UMSDOS_notify_change (struct dentry *, struct iattr *attr);
+ int umsdos_notify_change_locked(struct dentry *, struct iattr *attr);
+ void UMSDOS_put_inode (struct inode *);
+-int UMSDOS_statfs (struct super_block *, struct statfs *);
+-struct super_block *UMSDOS_read_super (struct super_block *, void *, int);
++struct statfs;
++int UMSDOS_statfs (struct super_block *, struct kstatfs *);
++int UMSDOS_read_super (struct super_block *, void *, int,
++ struct inode_operations *, int);
+ void UMSDOS_put_super (struct super_block *);
+
+ void umsdos_setup_dir(struct dentry *);
+@@ -74,7 +76,8 @@ int UMSDOS_link (struct dentry *olddentr
+ struct dentry *dentry);
+ int UMSDOS_create (struct inode *dir,
+ struct dentry *dentry,
+- int mode);
++ int mode,
++ struct nameidata *nd);
+
+ int UMSDOS_mkdir (struct inode *dir,
+ struct dentry *dentry,
+@@ -93,8 +96,3 @@ int UMSDOS_rename (struct inode *old_dir
+ /* rdir.c 22/03/95 03.31.42 */
+ struct dentry *umsdos_rlookup_x (struct inode *dir, struct dentry *dentry, int nopseudo);
+ struct dentry *UMSDOS_rlookup (struct inode *dir, struct dentry *dentry, struct nameidata *nd);
+-
+-static inline struct umsdos_inode_info *UMSDOS_I(struct inode *inode)
+-{
+- return &inode->u.umsdos_i;
+-}
+--- linux-260-test8-efs/fs/Kconfig 2003-10-17 14:43:15.000000000 -0700
++++ linux-260-test8/fs/Kconfig 2003-10-23 13:01:50.000000000 -0700
+@@ -621,9 +621,9 @@ config VFAT_FS
+ vfat.
+
+ config UMSDOS_FS
+-#dep_tristate ' UMSDOS: Unix-like file system on top of standard MSDOS fs' CONFIG_UMSDOS_FS $CONFIG_MSDOS_FS
+-# UMSDOS is temprory broken
+- bool
++ tristate ' UMSDOS: Unix-like file system on top of standard MSDOS fs'
++ depends on MSDOS_FS || BROKEN
++# UMSDOS is BROKEN until someone spends some time to fix it
+ help
+ Say Y here if you want to run Linux from within an existing DOS
+ partition of your hard drive. The advantage of this is that you can
+diff -Naurp linux-260-test8-efs/fs/umsdos/inode.c linux-260-test8/fs/umsdos/inode.c
+--- linux-260-test8-efs/fs/umsdos/inode.c 2003-10-17 14:42:54.000000000 -0700
++++ linux-260-test8/fs/umsdos/inode.c 2003-10-23 23:18:39.000000000 -0700
+@@ -11,16 +11,21 @@
+ #include <linux/fs.h>
+ #include <linux/msdos_fs.h>
+ #include <linux/kernel.h>
++#include <linux/namei.h>
+ #include <linux/time.h>
+ #include <linux/errno.h>
+ #include <asm/uaccess.h>
+ #include <linux/string.h>
+ #include <linux/stat.h>
++#include <linux/statfs.h>
++#include <linux/smp_lock.h>
+ #include <linux/umsdos_fs.h>
++#include <linux/umsdos_fs_i.h>
+ #include <linux/list.h>
+ #include <linux/pagemap.h>
+
+ extern struct dentry_operations umsdos_dentry_operations;
++extern dev_t ROOT_DEV;
+
+ struct dentry *saved_root; /* Original root if changed */
+ struct inode *pseudo_root; /* Useful to simulate the pseudo DOS */
+@@ -49,7 +54,9 @@ void UMSDOS_put_inode (struct inode *ino
+ void UMSDOS_put_super (struct super_block *sb)
+ {
+ Printk ((KERN_DEBUG "UMSDOS_put_super: entering\n"));
+- if (saved_root && pseudo_root && kdev_same(sb->s_dev, ROOT_DEV)) {
++ if (saved_root && pseudo_root &&
++ old_encode_dev(sb->s_dev) == old_encode_dev(ROOT_DEV)) {
++ /* TBD: is using 16-bit dev_t OK here? */
+ shrink_dcache_parent(saved_root);
+ dput(saved_root);
+ saved_root = NULL;
+@@ -150,7 +157,7 @@ dentry, f_pos));
+ inode->i_op = &umsdos_symlink_inode_operations;
+ } else
+ init_special_inode(inode, inode->i_mode,
+- kdev_t_to_nr(inode->i_rdev));
++ inode->i_rdev);
+ }
+
+
+@@ -282,12 +289,15 @@ dentry->d_parent->d_name.name, dentry->d
+ entry->gid = cpu_to_le16(attr->ia_gid);
+ if (attr->ia_valid & ATTR_MODE)
+ entry->mode = cpu_to_le16(attr->ia_mode);
++ /* TBD: fix times */
++#if 0
+ if (attr->ia_valid & ATTR_ATIME)
+ entry->atime = cpu_to_le32(attr->ia_atime);
+ if (attr->ia_valid & ATTR_MTIME)
+ entry->mtime = cpu_to_le32(attr->ia_mtime);
+ if (attr->ia_valid & ATTR_CTIME)
+ entry->ctime = cpu_to_le32(attr->ia_ctime);
++#endif
+ entry->nlink = cpu_to_le16(inode->i_nlink);
+ ret=mapping->a_ops->commit_write(NULL,page,offs,offs+UMSDOS_REC_SIZE);
+ if (ret)
+@@ -343,7 +353,7 @@ static struct super_operations umsdos_so
+ .clear_inode = fat_clear_inode,
+ };
+
+-int UMSDOS_statfs(struct super_block *sb,struct statfs *buf)
++int UMSDOS_statfs(struct super_block *sb, struct kstatfs *buf)
+ {
+ int ret;
+ ret = fat_statfs (sb, buf);
+@@ -355,26 +365,27 @@ int UMSDOS_statfs(struct super_block *sb
+ /*
+ * Read the super block of an Extended MS-DOS FS.
+ */
+-struct super_block *UMSDOS_read_super (struct super_block *sb, void *data,
+- int silent)
++int UMSDOS_read_super (struct super_block *sb,
++ void *data, int silent,
++ struct inode_operations *fs_dir_inode_ops,
++ int isvfat)
+ {
+- struct super_block *res;
+ struct dentry *new_root;
++ int res;
+
+ /*
+ * Call msdos-fs to mount the disk.
+- * Note: this returns res == sb or NULL
++ * Note: this returns res == 0 (success) else error.
+ */
+ MSDOS_SB(sb)->options.isvfat = 0;
+- res = fat_read_super(sb, data, silent, &umsdos_rdir_inode_operations);
+-
+- if (IS_ERR(res))
+- return NULL;
+- if (res == NULL) {
++ // TBD: which inode_operations to use:
++ res = fat_fill_super(sb, data, silent,
++ &umsdos_rdir_inode_operations, isvfat);
++ if (res) {
+ if (!silent)
+ printk(KERN_INFO "VFS: Can't find a valid "
+ "UMSDOS filesystem on dev %s.\n", sb->s_id);
+- return NULL;
++ return res;
+ }
+
+ printk (KERN_INFO "UMSDOS 0.86k "
+@@ -402,14 +413,13 @@ struct super_block *UMSDOS_read_super (s
+ printk(KERN_INFO "UMSDOS: changed to alternate root\n");
+ dget (sb->s_root); sb->s_root = dget(new_root);
+ }
+- return sb;
++ return 0;
+ }
+
+ /*
+ * Check for an alternate root if we're the root device.
+ */
+
+-extern kdev_t ROOT_DEV;
+ static struct dentry *check_pseudo_root(struct super_block *sb)
+ {
+ struct dentry *root, *sbin, *init;
+@@ -419,14 +429,15 @@ static struct dentry *check_pseudo_root(
+ * must check like this, because we can be used with initrd
+ */
+
+- if (!kdev_same(sb->s_dev, ROOT_DEV))
++ if (old_encode_dev(sb->s_dev) != old_encode_dev(ROOT_DEV))
+ goto out_noroot;
+
+ /*
+ * lookup_dentry needs a (so far non-existent) root.
+ */
+ printk(KERN_INFO "check_pseudo_root: mounted as root\n");
+- root = lookup_one_len(UMSDOS_PSDROOT_NAME, sb->s_root,UMSDOS_PSDROOT_LEN);
++ root = lookup_one_len(UMSDOS_PSDROOT_NAME,
++ sb->s_root, UMSDOS_PSDROOT_LEN);
+ if (IS_ERR(root))
+ goto out_noroot;
+
+@@ -464,7 +475,31 @@ out_noroot:
+ }
+
+
+-static DECLARE_FSTYPE_DEV(umsdos_fs_type, "umsdos", UMSDOS_read_super);
++static int umsdos_fill_super(struct super_block *sb, void *data, int silent)
++{
++ int res;
++
++ res = UMSDOS_read_super(sb, data, silent, &umsdos_dir_inode_operations, 0);
++
++ return res;
++}
++
++static struct super_block *umsdos_get_sb(struct file_system_type *fs_type,
++ int flags, const char *dev_name, void *data)
++{
++ return get_sb_bdev(fs_type, flags, dev_name, data, umsdos_fill_super);
++}
++
++//TBD: must EXPORT all entry points;
++//and use UMSDOS_ for them by local convention;
++
++static struct file_system_type umsdos_fs_type = {
++ .owner = THIS_MODULE,
++ .name = "umsdos",
++ .get_sb = umsdos_get_sb,
++ .kill_sb = kill_block_super,
++ .fs_flags = FS_REQUIRES_DEV,
++};
+
+ static int __init init_umsdos_fs (void)
+ {
+diff -Naurp linux-260-test8-efs/fs/umsdos/ioctl.c linux-260-test8/fs/umsdos/ioctl.c
+--- linux-260-test8-efs/fs/umsdos/ioctl.c 2003-10-17 14:42:54.000000000 -0700
++++ linux-260-test8/fs/umsdos/ioctl.c 2003-10-23 21:22:53.000000000 -0700
+@@ -402,9 +402,10 @@ new_dentry->d_parent->d_name.name, new_d
+ data.stat.st_ino = inode->i_ino;
+ data.stat.st_mode = inode->i_mode;
+ data.stat.st_size = inode->i_size;
+- data.stat.st_atime = inode->i_atime;
+- data.stat.st_ctime = inode->i_ctime;
+- data.stat.st_mtime = inode->i_mtime;
++ /* TBD: fix times */
++ ///data.stat.st_atime = inode->i_atime;
++ ///data.stat.st_ctime = inode->i_ctime;
++ ///data.stat.st_mtime = inode->i_mtime;
+ ret = -EFAULT;
+ if (!copy_to_user (&idata->stat, &data.stat,
+ sizeof (data.stat)))
+@@ -414,6 +415,7 @@ new_dentry->d_parent->d_name.name, new_d
+ goto out;
+ }
+ else if (cmd == UMSDOS_DOS_SETUP) {
++ struct msdos_sb_info *msdossbi = (struct msdos_sb_info *)dir->i_sb->s_fs_info;
+ /* #Specification: ioctl / UMSDOS_DOS_SETUP
+ * The UMSDOS_DOS_SETUP ioctl allow changing the
+ * default permission of the MS-DOS filesystem driver
+@@ -433,10 +435,11 @@ new_dentry->d_parent->d_name.name, new_d
+ * umsdos_dirent.uid and gid sets the owner and group.
+ * umsdos_dirent.mode set the permissions flags.
+ */
+- dir->i_sb->u.msdos_sb.options.fs_uid = data.umsdos_dirent.uid;
+- dir->i_sb->u.msdos_sb.options.fs_gid = data.umsdos_dirent.gid;
+- dir->i_sb->u.msdos_sb.options.fs_fmask =
+- dir->i_sb->u.msdos_sb.options.fs_dmask =
++ msdossbi->options.fs_uid = data.umsdos_dirent.uid;
++ msdossbi->options.fs_gid = data.umsdos_dirent.gid;
++ msdossbi->options.fs_fmask =
++ data.umsdos_dirent.mode;
++ msdossbi->options.fs_dmask =
+ data.umsdos_dirent.mode;
+ ret = 0;
+ }
+diff -Naurp linux-260-test8-efs/fs/umsdos/Makefile linux-260-test8/fs/umsdos/Makefile
+--- linux-260-test8-efs/fs/umsdos/Makefile 2003-10-17 14:42:58.000000000 -0700
++++ linux-260-test8/fs/umsdos/Makefile 2003-10-23 13:05:13.000000000 -0700
+@@ -2,9 +2,9 @@
+ # Makefile for the umsdos Unix-like filesystem routines.
+ #
+
+-obj-$(CONFIG_UMSDOS) += umsdos.o
++obj-$(CONFIG_UMSDOS_FS) += umsdos.o
+
+-umsdos-objs := dir.o inode.o ioctl.o mangle.o namei.o rdir.o emd.o
++umsdos-objs := dir.o inode.o ioctl.o mangle.o namei.o rdir.o emd.o
+
+ p:
+ proto *.c >/usr/include/linux/umsdos_fs.p
+diff -Naurp linux-260-test8-efs/fs/umsdos/namei.c linux-260-test8/fs/umsdos/namei.c
+--- linux-260-test8-efs/fs/umsdos/namei.c 2003-10-17 14:43:23.000000000 -0700
++++ linux-260-test8/fs/umsdos/namei.c 2003-10-23 21:46:02.000000000 -0700
+@@ -16,10 +16,12 @@
+ #include <linux/time.h>
+ #include <linux/types.h>
+ #include <linux/fcntl.h>
++#include <linux/sched.h>
+ #include <linux/stat.h>
+ #include <linux/string.h>
+ #include <linux/msdos_fs.h>
+ #include <linux/umsdos_fs.h>
++#include <linux/umsdos_fs_i.h>
+ #include <linux/slab.h>
+
+ #define UMSDOS_DIR_LOCK
+diff -Naurp linux-260-test8-efs/fs/umsdos/rdir.c linux-260-test8/fs/umsdos/rdir.c
+--- linux-260-test8-efs/fs/umsdos/rdir.c 2003-10-17 14:42:56.000000000 -0700
++++ linux-260-test8/fs/umsdos/rdir.c 2003-10-23 20:11:33.000000000 -0700
+@@ -14,6 +14,7 @@
+ #include <linux/stat.h>
+ #include <linux/limits.h>
+ #include <linux/umsdos_fs.h>
++#include <linux/umsdos_fs_i.h>
+ #include <linux/slab.h>
+ #include <linux/smp_lock.h>
+
+diff -Naurp linux-260-test8-efs/fs/umsdos/dir.c linux-260-test8/fs/umsdos/dir.c
+--- linux-260-test8-efs/fs/umsdos/dir.c 2003-10-17 14:43:11.000000000 -0700
++++ linux-260-test8/fs/umsdos/dir.c 2003-10-23 23:45:19.000000000 -0700
+@@ -15,6 +15,7 @@
+ #include <linux/stat.h>
+ #include <linux/limits.h>
+ #include <linux/umsdos_fs.h>
++#include <linux/umsdos_fs_i.h>
+ #include <linux/slab.h>
+ #include <linux/pagemap.h>
+ #include <linux/smp_lock.h>
+@@ -368,13 +369,16 @@ void umsdos_lookup_patch_new(struct dent
+ if (UMSDOS_I(inode)->i_patched)
+ goto out;
+ UMSDOS_I(inode)->i_patched = 1;
+- if (S_ISREG (entry->mode))
+- entry->mtime = inode->i_mtime;
++ /* TBD: fix mtime */
++ ///if (S_ISREG (entry->mode))
++ ///entry->mtime = inode->i_mtime;
+ inode->i_mode = entry->mode;
+- inode->i_rdev = to_kdev_t (entry->rdev);
+- inode->i_atime = entry->atime;
+- inode->i_ctime = entry->ctime;
+- inode->i_mtime = entry->mtime;
++ /* TBD: still using 16-bit dev_t; is this a problem? */
++ inode->i_rdev = old_decode_dev (entry->rdev);
++ /* TBD: fix times */
++ ///inode->i_atime = entry->atime;
++ ///inode->i_ctime = entry->ctime;
++ ///inode->i_mtime = entry->mtime;
+ inode->i_uid = entry->uid;
+ inode->i_gid = entry->gid;
+
+@@ -593,7 +597,7 @@ struct dentry *umsdos_covered(struct den
+ dentry = d_alloc(parent, &qstr);
+ if (dentry) {
+ /* XXXXXXXXXXXXXXXXXXX Race alert! */
+- result = UMSDOS_rlookup(parent->d_inode, dentry);
++ result = UMSDOS_rlookup(parent->d_inode, dentry, NULL);
+ d_drop(dentry);
+ if (result)
+ goto out_fail;
+@@ -628,8 +632,8 @@ struct dentry *umsdos_lookup_dentry(stru
+ dentry = d_alloc(parent, &qstr);
+ if (dentry) {
+ result = real ?
+- UMSDOS_rlookup(parent->d_inode, dentry) :
+- UMSDOS_lookup(parent->d_inode, dentry);
++ UMSDOS_rlookup(parent->d_inode, dentry, NULL) :
++ UMSDOS_lookup(parent->d_inode, dentry, NULL);
+ if (result)
+ goto out_fail;
+ return dentry;
+@@ -655,7 +659,8 @@ char * umsdos_d_path(struct dentry *dent
+ old_root = dget(current->fs->root);
+ read_unlock(¤t->fs->lock);
+ spin_lock(&dcache_lock);
+- path = __d_path(dentry, current->fs->rootmnt, dentry->d_sb->s_root, current->fs->rootmnt, buffer, len); /* FIXME: current->fs->rootmnt */
++ /* FIXME: current->fs->rootmnt: */
++ path = d_path(dentry, current->fs->rootmnt, buffer, len);
+ spin_unlock(&dcache_lock);
+
+ if (*path == '/')
--- /dev/null
+diff -ur linux-2.6.0-test7/fs/Kconfig linux-2.6.0-test7.new/fs/Kconfig
+--- linux-2.6.0-test7/fs/Kconfig Thu Oct 9 22:11:31 2003
++++ linux-2.6.0-test7.new/fs/Kconfig Sat Oct 25 21:24:13 2003
+@@ -246,6 +246,7 @@
+
+ config JFS_FS
+ tristate "JFS filesystem support"
++ depends on NLS
+ help
+ This is a port of IBM's Journaled Filesystem . More information is
+ available in the file Documentation/filesystems/jfs.txt.
+@@ -464,6 +465,8 @@
+ local network, you probably do not need an automounter, and can say
+ N here.
+
++source "fs/nls/Kconfig"
++
+ menu "CD-ROM/DVD Filesystems"
+
+ config ISO9660_FS
+@@ -484,7 +487,7 @@
+
+ config JOLIET
+ bool "Microsoft Joliet CDROM extensions"
+- depends on ISO9660_FS
++ depends on ISO9660_FS && NLS
+ help
+ Joliet is a Microsoft extension for the ISO 9660 CD-ROM file system
+ which allows for long filenames in unicode format (unicode is the
+@@ -530,6 +533,7 @@
+
+ config FAT_FS
+ tristate "DOS FAT fs support"
++ depends on NLS
+ help
+ If you want to use one of the FAT-based file systems (the MS-DOS,
+ VFAT (Windows 95) and UMSDOS (used to run Linux on top of an
+@@ -651,6 +655,7 @@
+
+ config NTFS_FS
+ tristate "NTFS file system support"
++ depends on NLS
+ help
+ NTFS is the file system of Microsoft Windows NT, 2000, XP and 2003.
+
+@@ -961,7 +966,7 @@
+
+ config BEFS_FS
+ tristate "BeOS file systemv(BeFS) support (read only) (EXPERIMENTAL)"
+- depends on EXPERIMENTAL
++ depends on EXPERIMENTAL && NLS
+ help
+ The BeOS File System (BeFS) is the native file system of Be, Inc's
+ BeOS. Notable features include support for arbitrary attributes
+@@ -1415,7 +1420,7 @@
+
+ config SMB_FS
+ tristate "SMB file system support (to mount Windows shares etc.)"
+- depends on INET
++ depends on INET && NLS
+ help
+ SMB (Server Message Block) is the protocol Windows for Workgroups
+ (WfW), Windows 95/98, Windows NT and OS/2 Lan Manager use to share
+@@ -1470,7 +1475,7 @@
+
+ config CIFS
+ tristate "CIFS support (advanced network filesystem for Samba, Window and other CIFS compliant servers)(EXPERIMENTAL)"
+- depends on INET
++ depends on INET && NLS
+ help
+ This is the client VFS module for the Common Internet File System
+ (CIFS) protocol which is the successor to the Server Message Block
+@@ -1585,8 +1590,6 @@
+ source "fs/partitions/Kconfig"
+
+ endmenu
+-
+-source "fs/nls/Kconfig"
+
+ endmenu
+
+diff -ur linux-2.6.0-test7/fs/ncpfs/Kconfig linux-2.6.0-test7.new/fs/ncpfs/Kconfig
+--- linux-2.6.0-test7/fs/ncpfs/Kconfig Sat Aug 9 06:33:21 2003
++++ linux-2.6.0-test7.new/fs/ncpfs/Kconfig Sat Oct 25 21:01:08 2003
+@@ -64,7 +64,7 @@
+
+ config NCPFS_NLS
+ bool "Use Native Language Support"
+- depends on NCP_FS
++ depends on NCP_FS && NLS
+ help
+ Allows you to use codepages and I/O charsets for file name
+ translation between the server file system and input/output. This
+diff -ur linux-2.6.0-test7/fs/nls/Kconfig linux-2.6.0-test7.new/fs/nls/Kconfig
+--- linux-2.6.0-test7/fs/nls/Kconfig Sat Aug 9 06:31:05 2003
++++ linux-2.6.0-test7.new/fs/nls/Kconfig Sat Oct 25 21:27:58 2003
+@@ -1,24 +1,32 @@
+ #
+ # Native language support configuration
+ #
+-# smb wants NLS
+-config SMB_NLS
+- bool
+- depends on SMB_FS
+- default y
+
+-# msdos and Joliet want NLS
++menu "Native Language Support"
++
+ config NLS
+- bool
+- depends on JOLIET || FAT_FS || NTFS_FS || NCPFS_NLS || SMB_NLS || JFS_FS || CIFS || BEFS_FS
++ tristate 'Base native language support'
+ default y
++ ---help---
++ The base Native Language Support. A number of filesystems
++ depend on it (e.g. FAT, JOLIET, NT, BEOS filesystems), as well
++ as the ability of some filesystems to use native languages
++ (NCP, SMB).
+
++ If unsure, say Y.
+
+-menu "Native Language Support"
+- depends on NLS
++ To compile this code as a module, choose M here: the module
++ will be called nls_base.
++
++# smb wants NLS
++config SMB_NLS
++ bool
++ depends on SMB_FS && NLS
++ default y
+
+ config NLS_DEFAULT
+ string "Default NLS Option"
++ depends on NLS
+ default "iso8859-1"
+ ---help---
+ The default NLS used when mounting file system. Note, that this is
+@@ -38,6 +46,7 @@
+
+ config NLS_CODEPAGE_437
+ tristate "Codepage 437 (United States, Canada)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored
+@@ -50,6 +59,7 @@
+
+ config NLS_CODEPAGE_737
+ tristate "Codepage 737 (Greek)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored
+@@ -62,6 +72,7 @@
+
+ config NLS_CODEPAGE_775
+ tristate "Codepage 775 (Baltic Rim)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored
+@@ -75,6 +86,7 @@
+
+ config NLS_CODEPAGE_850
+ tristate "Codepage 850 (Europe)"
++ depends on NLS
+ ---help---
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -91,6 +103,7 @@
+
+ config NLS_CODEPAGE_852
+ tristate "Codepage 852 (Central/Eastern Europe)"
++ depends on NLS
+ ---help---
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -106,6 +119,7 @@
+
+ config NLS_CODEPAGE_855
+ tristate "Codepage 855 (Cyrillic)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -117,6 +131,7 @@
+
+ config NLS_CODEPAGE_857
+ tristate "Codepage 857 (Turkish)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -128,6 +143,7 @@
+
+ config NLS_CODEPAGE_860
+ tristate "Codepage 860 (Portuguese)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -139,6 +155,7 @@
+
+ config NLS_CODEPAGE_861
+ tristate "Codepage 861 (Icelandic)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -150,6 +167,7 @@
+
+ config NLS_CODEPAGE_862
+ tristate "Codepage 862 (Hebrew)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -161,6 +179,7 @@
+
+ config NLS_CODEPAGE_863
+ tristate "Codepage 863 (Canadian French)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -173,6 +192,7 @@
+
+ config NLS_CODEPAGE_864
+ tristate "Codepage 864 (Arabic)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -184,6 +204,7 @@
+
+ config NLS_CODEPAGE_865
+ tristate "Codepage 865 (Norwegian, Danish)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -196,6 +217,7 @@
+
+ config NLS_CODEPAGE_866
+ tristate "Codepage 866 (Cyrillic/Russian)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -208,6 +230,7 @@
+
+ config NLS_CODEPAGE_869
+ tristate "Codepage 869 (Greek)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -219,6 +242,7 @@
+
+ config NLS_CODEPAGE_936
+ tristate "Simplified Chinese charset (CP936, GB2312)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -231,6 +255,7 @@
+
+ config NLS_CODEPAGE_950
+ tristate "Traditional Chinese charset (Big5)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -243,6 +268,7 @@
+
+ config NLS_CODEPAGE_932
+ tristate "Japanese charsets (Shift-JIS, EUC-JP)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -256,6 +282,7 @@
+
+ config NLS_CODEPAGE_949
+ tristate "Korean charset (CP949, EUC-KR)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -267,6 +294,7 @@
+
+ config NLS_CODEPAGE_874
+ tristate "Thai charset (CP874, TIS-620)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -278,6 +306,7 @@
+
+ config NLS_ISO8859_8
+ tristate "Hebrew charsets (ISO-8859-8, CP1255)"
++ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+@@ -287,6 +316,7 @@
+
+ config NLS_CODEPAGE_1250
+ tristate "Windows CP1250 (Slavic/Central European Languages)"
++ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CDROMs
+@@ -298,6 +328,7 @@
+
+ config NLS_CODEPAGE_1251
+ tristate "Windows CP1251 (Bulgarian, Belarusian)"
++ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+@@ -310,6 +341,7 @@
+
+ config NLS_ISO8859_1
+ tristate "NLS ISO 8859-1 (Latin 1; Western European Languages)"
++ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+@@ -322,6 +354,7 @@
+
+ config NLS_ISO8859_2
+ tristate "NLS ISO 8859-2 (Latin 2; Slavic/Central European Languages)"
++ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+@@ -333,6 +366,7 @@
+
+ config NLS_ISO8859_3
+ tristate "NLS ISO 8859-3 (Latin 3; Esperanto, Galician, Maltese, Turkish)"
++ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+@@ -343,6 +377,7 @@
+
+ config NLS_ISO8859_4
+ tristate "NLS ISO 8859-4 (Latin 4; old Baltic charset)"
++ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+@@ -353,6 +388,7 @@
+
+ config NLS_ISO8859_5
+ tristate "NLS ISO 8859-5 (Cyrillic)"
++ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+@@ -364,6 +400,7 @@
+
+ config NLS_ISO8859_6
+ tristate "NLS ISO 8859-6 (Arabic)"
++ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+@@ -373,6 +410,7 @@
+
+ config NLS_ISO8859_7
+ tristate "NLS ISO 8859-7 (Modern Greek)"
++ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+@@ -382,6 +420,7 @@
+
+ config NLS_ISO8859_9
+ tristate "NLS ISO 8859-9 (Latin 5; Turkish)"
++ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+@@ -392,6 +431,7 @@
+
+ config NLS_ISO8859_13
+ tristate "NLS ISO 8859-13 (Latin 7; Baltic)"
++ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+@@ -402,6 +442,7 @@
+
+ config NLS_ISO8859_14
+ tristate "NLS ISO 8859-14 (Latin 8; Celtic)"
++ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+@@ -413,6 +454,7 @@
+
+ config NLS_ISO8859_15
+ tristate "NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)"
++ depends on NLS
+ ---help---
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+@@ -429,6 +471,7 @@
+
+ config NLS_KOI8_R
+ tristate "NLS KOI8-R (Russian)"
++ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+@@ -438,6 +481,7 @@
+
+ config NLS_KOI8_U
+ tristate "NLS KOI8-U/RU (Ukrainian, Belarusian)"
++ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+@@ -447,6 +491,7 @@
+
+ config NLS_UTF8
+ tristate "NLS UTF8"
++ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+diff -ur linux-2.6.0-test7/fs/nls/nls_base.c linux-2.6.0-test7.new/fs/nls/nls_base.c
+--- linux-2.6.0-test7/fs/nls/nls_base.c Wed Oct 8 23:28:18 2003
++++ linux-2.6.0-test7.new/fs/nls/nls_base.c Sat Oct 25 21:18:54 2003
+@@ -480,7 +480,7 @@
+ if (default_nls != NULL)
+ return default_nls;
+ else
+- return &default_table;
++ return &default_table;
+ }
+
+ EXPORT_SYMBOL(register_nls);
+@@ -492,3 +492,5 @@
+ EXPORT_SYMBOL(utf8_mbstowcs);
+ EXPORT_SYMBOL(utf8_wctomb);
+ EXPORT_SYMBOL(utf8_wcstombs);
++
++MODULE_LICENSE("Dual BSD/GPL");