[PATCH] allow iocharset=none mount optio (6 of 7)
[email protected] (Dave Kleikamp) Fri, 18 Feb 2005 17:07:19 -0600 (CST)
| Newsgroups | gmane.comp.file-systems.jfs.patches |
|---|---|
| Message-ID | <[email protected]> |
# This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2005/02/18 16:41:17-06:00 [email protected] # JFS: allow iocharset=none mount option # # iocharset=none is an explicit option to specify the default # character translation be used (no translation). This allows # remounting a partition which was mounted with a different setting, # and allows the same mount options to be used between 2.6 and 2.4 # kernels, where there is a different default. # # Signed-off-by: Dave Kleikamp <[email protected]> # diff -Nru a/Documentation/filesystems/jfs.txt b/Documentation/filesystems/jfs.txt --- a/Documentation/filesystems/jfs.txt 2005-02-18 17:02:32 -06:00 +++ b/Documentation/filesystems/jfs.txt 2005-02-18 17:02:32 -06:00 @@ -1,13 +1,6 @@ IBM's Journaled File System (JFS) for Linux -JFS Homepage: http://oss.software.ibm.com/jfs/ - -Team members ------------- -Dave Kleikamp [email protected] -Dave Blaschke [email protected] -Steve Best [email protected] -Barry Arndt [email protected] +JFS Homepage: http://jfs.sourceforge.net/ The following mount options are supported: @@ -15,6 +8,7 @@ ASCII. The default is to do no conversion. Use iocharset=utf8 for UTF8 translations. This requires CONFIG_NLS_UTF8 to be set in the kernel .config file. + iocharset=none specifies the default behavior explicitly. resize=value Resize the volume to <value> blocks. JFS only supports growing a volume, not shrinking it. This option is only @@ -38,4 +32,4 @@ Please send bugs, comments, cards and letters to [email protected]. The JFS mailing list can be subscribed to by using the link labeled -"Mail list Subscribe" at our web page http://oss.software.ibm.com/jfs/. +"Mail list Subscribe" at our web page http://jfs.sourceforge.net/ diff -Nru a/fs/jfs/super.c b/fs/jfs/super.c --- a/fs/jfs/super.c 2005-02-18 17:02:32 -06:00 +++ b/fs/jfs/super.c 2005-02-18 17:02:32 -06:00 @@ -235,7 +235,7 @@ static int parse_options(char *options, struct super_block *sb, s64 *newLVSize, int *flag) { - void *nls_map = NULL; + void *nls_map = (void *)-1; /* -1: no change; NULL: none */ char *p; struct jfs_sb_info *sbi = JFS_SBI(sb); @@ -263,12 +263,17 @@ /* Don't do anything ;-) */ break; case Opt_iocharset: - if (nls_map) /* specified iocharset twice! */ + if (nls_map && nls_map != (void *) -1) unload_nls(nls_map); - nls_map = load_nls(args[0].from); - if (!nls_map) { - printk(KERN_ERR "JFS: charset not found\n"); - goto cleanup; + if (!strcmp(args[0].from, "none")) + nls_map = NULL; + else { + nls_map = load_nls(args[0].from); + if (!nls_map) { + printk(KERN_ERR + "JFS: charset not found\n"); + goto cleanup; + } } break; case Opt_resize: @@ -318,7 +323,7 @@ } } - if (nls_map) { + if (nls_map != (void *) -1) { /* Discard old (if remount) */ if (sbi->nls_tab) unload_nls(sbi->nls_tab); @@ -327,7 +332,7 @@ return 1; cleanup: - if (nls_map) + if (nls_map && nls_map != (void *) -1) unload_nls(nls_map); return 0; }