All of lore.kernel.org
 help / color / mirror / Atom feed
From: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>,
	tridge@samba.org, Martin Steigerwald <Martin@lichtvoll.de>,
	Jan Engelhardt <jengelh@medozas.de>, Theodore Tso <tytso@mit.edu>,
	Rusty Russell <rusty@rustcorp.com.au>,
	Pavel Machek <pavel@ucw.cz>,
	john.lanza@linux.com,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-fsdevel@vger.kernel.org,
	Dave Kleikamp <shaggy@linux.vnet.ibm.com>,
	corbet@lwn.net, jcm@jonmasters.org
Subject: Re: CONFIG_VFAT_FS_DUALNAMES regressions
Date: Mon, 13 Jul 2009 04:39:40 +0900	[thread overview]
Message-ID: <87hbxhwv0j.fsf@devron.myhome.or.jp> (raw)
In-Reply-To: <873a96a23x.fsf@devron.myhome.or.jp> (OGAWA Hirofumi's message of "Thu, 09 Jul 2009 13:53:38 +0900")

OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> writes:

> Alan Cox <alan@lxorguk.ukuu.org.uk> writes:
>
>> Sure and I'd say the technical issues are simple
>>
>> - Tridge's patch breaks stuff
>> - Tridge's patch masquerades as vfat but isn't.
>>
>> We can fix those by only creating short names (but honouring existing
>> long ones) and by not claiming its vfat.
>
> As technical stand, I agree with this approach. And my poor brain can't
> consider other than technical thing, it is purely my problem though. So
> I'll try to create the patch based on first version, and I'll apply it
> instead.
>
> And could you please stop talking about other than technical issues? My
> poor brain is already overflowed.
>
> I'm a fool?  Yes, I agree.

My patch is following. Sorry. But I'm still worrying about this myself.

It seems my skill and knowledge for the issue are too small.  My time
for fat was already small before this, and honestly, I don't think I can
maintain/support all issues well.

So, finally, I thought the best for us which I can is to find new
maintainer for fat.

Could you help to find the new maintainer?

Thanks.
-- 
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>



From: tridge@samba.org

When this option is enabled this will refuse to create new files with
long names. Accessing existing files with long names will continue to
work.

File names to be created must conform to the 8.3 format.  Mixed case is
not allowed in either the prefix or the suffix.

Signed-off-by: Andrew Tridgell <tridge@samba.org>
[Add "lfat", comment out Kconfig]
Signed-off-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
---

 fs/fat/Kconfig      |   11 +++++++++++
 fs/fat/namei_vfat.c |   35 ++++++++++++++++++++++++++++++-----
 2 files changed, 41 insertions(+), 5 deletions(-)

diff -puN fs/fat/Kconfig~fat-disable-longname fs/fat/Kconfig
--- fatfs-2.6-2/fs/fat/Kconfig~fat-disable-longname	2009-07-10 16:16:47.000000000 +0900
+++ fatfs-2.6-2-hirofumi/fs/fat/Kconfig	2009-07-12 12:50:52.000000000 +0900
@@ -98,3 +98,14 @@ config FAT_DEFAULT_IOCHARSET
 
 	  Enable any character sets you need in File Systems/Native Language
 	  Support.
+
+#config VFAT_NO_CREATE_WITH_LONGNAMES
+#	bool "Disable creating files with long names"
+#	depends on VFAT_FS
+#	default n
+#	help
+#	  Set this to disable support for creating files or directories with
+#	  names longer than 8.3 (the original DOS maximum file name length)
+#	  e.g. naming a file FILE1234.TXT would be allowed but creating or
+#	  renaming a file to FILE12345.TXT or FILE1234.TEXT would not
+#	  be permitted.  Reading files with long file names is still permitted.
diff -puN fs/fat/namei_vfat.c~fat-disable-longname fs/fat/namei_vfat.c
--- fatfs-2.6-2/fs/fat/namei_vfat.c~fat-disable-longname	2009-07-10 16:16:47.000000000 +0900
+++ fatfs-2.6-2-hirofumi/fs/fat/namei_vfat.c	2009-07-11 16:26:24.000000000 +0900
@@ -316,6 +316,7 @@ static int vfat_create_shortname(struct 
 	int sz = 0, extlen, baselen, i, numtail_baselen, numtail2_baselen;
 	int is_shortname;
 	struct shortname_info base_info, ext_info;
+	unsigned opt_shortname = opts->shortname;
 
 	is_shortname = 1;
 	INIT_SHORTNAME_INFO(&base_info);
@@ -424,13 +425,22 @@ static int vfat_create_shortname(struct 
 	memcpy(name_res, base, baselen);
 	memcpy(name_res + 8, ext, extlen);
 	*lcase = 0;
+
+#ifdef CONFIG_VFAT_NO_CREATE_WITH_LONGNAMES
+	if (is_shortname == 0)
+		return -ENAMETOOLONG;
+	if (!base_info.valid || !ext_info.valid)
+		return -EINVAL;
+	opt_shortname = VFAT_SFN_CREATE_WINNT;
+#endif
+
 	if (is_shortname && base_info.valid && ext_info.valid) {
 		if (vfat_find_form(dir, name_res) == 0)
 			return -EEXIST;
 
-		if (opts->shortname & VFAT_SFN_CREATE_WIN95) {
+		if (opt_shortname & VFAT_SFN_CREATE_WIN95) {
 			return (base_info.upper && ext_info.upper);
-		} else if (opts->shortname & VFAT_SFN_CREATE_WINNT) {
+		} else if (opt_shortname & VFAT_SFN_CREATE_WINNT) {
 			if ((base_info.upper || base_info.lower) &&
 			    (ext_info.upper || ext_info.lower)) {
 				if (!base_info.upper && base_info.lower)
@@ -593,15 +603,19 @@ static int vfat_build_slots(struct inode
 {
 	struct msdos_sb_info *sbi = MSDOS_SB(dir->i_sb);
 	struct fat_mount_options *opts = &sbi->options;
-	struct msdos_dir_slot *ps;
 	struct msdos_dir_entry *de;
-	unsigned char cksum, lcase;
+	unsigned char lcase;
 	unsigned char msdos_name[MSDOS_NAME];
 	wchar_t *uname;
 	__le16 time, date;
 	u8 time_cs;
-	int err, ulen, usize, i;
+	int err, ulen, usize;
+#ifndef CONFIG_VFAT_NO_CREATE_WITH_LONGNAMES
+	int i;
+	struct msdos_dir_slot *ps;
+	unsigned char cksum;
 	loff_t offset;
+#endif
 
 	*nr_slots = 0;
 
@@ -628,6 +642,9 @@ static int vfat_build_slots(struct inode
 		goto shortname;
 	}
 
+#ifdef CONFIG_VFAT_NO_CREATE_WITH_LONGNAMES
+	de = (struct msdos_dir_entry *)slots;
+#else
 	/* build the entry of long file name */
 	cksum = fat_checksum(msdos_name);
 
@@ -645,6 +662,7 @@ static int vfat_build_slots(struct inode
 	}
 	slots[0].id |= 0x40;
 	de = (struct msdos_dir_entry *)ps;
+#endif
 
 shortname:
 	/* build the entry of 8.3 alias name */
@@ -1074,7 +1092,11 @@ static int vfat_get_sb(struct file_syste
 
 static struct file_system_type vfat_fs_type = {
 	.owner		= THIS_MODULE,
+#ifdef CONFIG_VFAT_NO_CREATE_WITH_LONGNAMES
+	.name		= "lfat",
+#else
 	.name		= "vfat",
+#endif
 	.get_sb		= vfat_get_sb,
 	.kill_sb	= kill_block_super,
 	.fs_flags	= FS_REQUIRES_DEV,
@@ -1093,6 +1115,9 @@ static void __exit exit_vfat_fs(void)
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("VFAT filesystem support");
 MODULE_AUTHOR("Gordon Chaffee");
+#ifdef CONFIG_VFAT_NO_CREATE_WITH_LONGNAMES
+MODULE_ALIAS("lfat");
+#endif
 
 module_init(init_vfat_fs)
 module_exit(exit_vfat_fs)
_

  parent reply	other threads:[~2009-07-12 19:40 UTC|newest]

Thread overview: 210+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-26 19:19 [PATCH] Added CONFIG_VFAT_FS_DUALNAMES option tridge
2009-06-26 21:40 ` H. Peter Anvin
2009-06-26 22:21   ` tridge
2009-06-27  1:48     ` OGAWA Hirofumi
2009-06-27 17:26       ` Jan Engelhardt
2009-06-27  1:56 ` OGAWA Hirofumi
2009-06-27 17:21 ` Jan Engelhardt
2009-06-28  2:59   ` tridge
2009-06-28 21:57     ` Jamie Lokier
2009-06-28 22:02       ` Jan Engelhardt
2009-06-28 22:05         ` Jamie Lokier
2009-06-29  1:23       ` tridge
2009-06-28  1:54 ` Eric W. Biederman
2009-06-28  2:19   ` tridge
2009-06-28  4:10     ` Eric W. Biederman
2009-06-28  5:38       ` tridge
2009-06-28  6:25         ` OGAWA Hirofumi
2009-06-28 19:51           ` Eric W. Biederman
2009-06-28 20:13             ` James Bottomley
2009-06-28 20:45               ` Eric W. Biederman
2009-06-28 21:45                 ` James Bottomley
2009-06-28 21:28             ` tridge
2009-06-29  1:30           ` tridge
2009-06-29 22:18             ` Greg KH
2009-06-29 22:42               ` tridge
2009-06-29 22:52                 ` Greg KH
2009-06-29 23:36                 ` OGAWA Hirofumi
2009-06-29 23:51                   ` tridge
2009-06-30  0:55                     ` OGAWA Hirofumi
2009-06-30  6:31 ` Pavel Machek
2009-07-01 10:09   ` Alan Cox
2009-07-01 11:11     ` tridge
2009-07-01 11:34       ` Alan Cox
2009-07-01 10:49   ` Rusty Russell
2009-07-01 11:25     ` Alan Cox
2009-07-01 14:05       ` Theodore Tso
2009-07-01 14:17         ` Alan Cox
2009-07-02  1:42           ` tridge
2009-07-02 10:33             ` Alan Cox
2009-07-02 12:43               ` tridge
2009-07-02 21:49           ` Pavel Machek
2009-07-06 19:57           ` Jamie Lokier
2009-07-01 16:18         ` Stefan Richter
2009-07-01 16:18           ` Stefan Richter
2009-07-02 23:17         ` CONFIG_VFAT_FS_DUALNAMES regression Jan Engelhardt
2009-07-02 23:17           ` Jan Engelhardt
2009-07-02 23:37           ` tridge
2009-07-03  0:11             ` Jan Engelhardt
2009-07-03  0:11               ` Jan Engelhardt
2009-07-03  0:25               ` tridge
2009-07-03  1:10                 ` Jan Engelhardt
2009-07-03  1:10                   ` Jan Engelhardt
2009-07-03  1:26                   ` tridge
2009-07-03  1:58                     ` Jan Engelhardt
2009-07-11  0:14                       ` Jamie Lokier
2009-07-02 23:46           ` CONFIG_VFAT_FS_DUALNAMES regressions Jan Engelhardt
2009-07-02 23:46             ` Jan Engelhardt
2009-07-03  0:14             ` tridge
2009-07-03  0:58               ` OGAWA Hirofumi
2009-07-03  1:11                 ` tridge
2009-07-03  1:50                   ` Jan Engelhardt
2009-07-03  1:50                     ` Jan Engelhardt
2009-07-03  1:59                     ` tridge
2009-07-03  2:09                       ` Jan Engelhardt
2009-07-03  2:09                         ` Jan Engelhardt
2009-07-03  3:25                         ` tridge
2009-07-03  6:46                           ` OGAWA Hirofumi
2009-07-03  9:40                           ` Jan Engelhardt
2009-07-03  9:40                             ` Jan Engelhardt
2009-07-03 12:24                             ` tridge
2009-07-04  3:09                               ` OGAWA Hirofumi
2009-07-06 11:40                               ` Jan Engelhardt
2009-07-06 13:05                                 ` tridge
2009-07-06 16:17                                   ` David Newall
2009-07-06 16:17                                     ` David Newall
2009-07-06 19:33                                     ` Jamie Lokier
2009-07-06 18:55                                   ` Jan Engelhardt
2009-07-06 20:26                                     ` tridge
2009-07-06 20:42                                       ` Jan Engelhardt
2009-07-06 20:42                                         ` Jan Engelhardt
2009-07-08  7:31                                         ` tridge
2009-07-06 20:36                                     ` Jan Engelhardt
2009-07-06 20:58                                       ` Jamie Lokier
2009-07-06 21:08                                         ` Jan Engelhardt
2009-07-06 22:24                                           ` Jamie Lokier
2009-07-07  9:36                                             ` Jan Engelhardt
2009-07-07  0:21                                       ` tridge
2009-07-07 21:56                                         ` Martin Steigerwald
2009-07-07 22:09                                           ` Martin Steigerwald
2009-07-08  3:12                                           ` tridge
2009-07-08 10:04                                             ` Alan Cox
2009-07-08 10:48                                               ` tridge
2009-07-08 12:02                                                 ` Alan Cox
2009-07-08 13:02                                                   ` tridge
2009-07-08 13:25                                                     ` Alan Cox
2009-07-09  1:20                                                       ` tridge
2009-07-09  9:42                                                         ` Alan Cox
2009-07-09 13:59                                                           ` James Bottomley
2009-07-09 14:10                                                             ` Alan Cox
2009-07-09 15:25                                                               ` Theodore Tso
2009-07-09 17:15                                                                 ` Christoph Hellwig
2009-07-09 20:57                                                                   ` David Newall
2009-07-09 22:23                                                                     ` Martin Steigerwald
2009-07-10  1:45                                                                       ` David Newall
2009-07-10 18:49                                                                         ` Martin Steigerwald
2009-07-10 19:31                                                                           ` Jonathan Corbet
2009-07-10 20:40                                                                             ` Bartlomiej Zolnierkiewicz
2009-07-12 11:21                                                                               ` Jörn Engel
2009-07-12 11:21                                                                                 ` Jörn Engel
2009-07-12 11:27                                                                                 ` Jan Engelhardt
2009-07-12 11:27                                                                                   ` Jan Engelhardt
2009-07-13 22:20                                                                                   ` Jamie Lokier
2009-07-13 22:20                                                                                     ` Jamie Lokier
2009-07-13 22:32                                                                                     ` Jan Engelhardt
2009-07-10 21:14                                                                             ` Alan Cox
2009-07-12  8:52                                                                           ` David Newall
2009-07-10  0:09                                                                 ` Alan Cox
2009-07-08 12:23                                                 ` Jan Engelhardt
2009-07-08 15:27                                               ` James Bottomley
2009-07-08 15:37                                                 ` Alan Cox
2009-07-08 16:06                                                   ` James Bottomley
2009-07-08 16:18                                                     ` Alan Cox
2009-07-09  4:25                                                       ` tridge
2009-07-09  5:27                                                         ` OGAWA Hirofumi
2009-07-09  7:21                                                           ` Pavel Machek
2009-07-09  7:34                                                             ` David Newall
2009-07-09  9:51                                                         ` Alan Cox
2009-07-09  4:53                                                       ` OGAWA Hirofumi
2009-07-09  9:53                                                         ` Alan Cox
2009-07-12 19:39                                                         ` OGAWA Hirofumi [this message]
2009-07-21  3:37                                                           ` tridge
2009-07-21  9:16                                                             ` Boaz Harrosh
2009-07-21 10:31                                                               ` Pavel Machek
2009-07-21 13:24                                                                 ` tridge
2009-07-21 15:08                                                                   ` John Lanza
2009-07-21 15:08                                                                     ` John Lanza
2009-07-21 19:36                                                                     ` John Lanza
2009-07-21 19:36                                                                       ` John Lanza
2009-07-21 21:37                                                                   ` Pavel Machek
2009-07-21 22:38                                                                     ` tridge
2009-07-21 10:44                                                               ` Jan Engelhardt
2009-07-21 13:04                                                               ` tridge
2009-07-21 15:06                                                                 ` John Lanza
2009-07-21 19:38                                                                   ` John Lanza
2009-07-21 19:38                                                                     ` John Lanza
2009-07-21 10:31                                                             ` Pavel Machek
2009-07-21 13:19                                                               ` tridge
2009-08-08 12:19                                                                 ` Pavel Machek
2009-07-08 11:39                                             ` Martin Steigerwald
2009-07-08 13:53                                               ` Jamie Lokier
2009-07-08 17:12                                                 ` Jeremy Allison
2009-07-09  3:23                                               ` tridge
2009-07-09 13:34                                                 ` Martin Steigerwald
2009-07-09  4:13                                               ` tridge
2009-07-09 19:47                                                 ` Martin Steigerwald
2009-07-10  7:36                                                 ` Pavel Machek
2009-07-10 21:12                                                   ` Jamie Lokier
2009-07-10 21:28                                                 ` Jamie Lokier
2009-07-11  2:03                                                   ` Jamie Lokier
2009-07-07 19:51                                   ` Pavel Machek
2009-07-08  7:42                                     ` tridge
2009-07-08 10:27                                       ` Jan Engelhardt
2009-07-09  2:23                                         ` tridge
2009-07-09  8:24                                           ` Jan Engelhardt
2009-07-10  7:35                                       ` Pavel Machek
2009-07-06 20:04                               ` Jamie Lokier
2009-07-08  7:30                                 ` tridge
2009-07-10 21:44                                   ` Jamie Lokier
2009-07-02  0:34       ` [PATCH] Added CONFIG_VFAT_FS_DUALNAMES option Rusty Russell
2009-07-02 21:46     ` Pavel Machek
2009-07-02 22:06       ` tridge
2009-07-02 22:33         ` Pavel Machek
2009-07-02 22:41           ` tridge
2009-07-02 22:44             ` Pavel Machek
2009-07-02 23:59               ` tridge
2009-07-08  9:21                 ` Pavel Machek
2009-07-08 14:25                   ` Paul E. McKenney
2009-07-08 21:42                     ` tridge
2009-07-08 22:14                       ` Paul E. McKenney
2009-07-08 23:59                         ` Paul E. McKenney
2009-07-08 16:46                   ` H. Peter Anvin
2009-07-03  0:03               ` Rusty Russell
2009-07-02 23:55       ` Rusty Russell
2009-07-01 10:50   ` tridge
2009-07-01 11:31     ` Alan Cox
2009-07-01 13:16       ` tridge
2009-07-01 13:38         ` Alan Cox
2009-07-01 14:02           ` tridge
2009-07-01 14:41             ` Alan Cox
2009-07-02  4:04               ` tridge
2009-07-02 10:32                 ` Alan Cox
2009-07-02 12:38                   ` tridge
2009-07-02 16:56                     ` Alan Cox
2009-07-03  2:50                       ` OGAWA Hirofumi
2009-07-02 14:56                   ` James Bottomley
2009-07-02 15:27                     ` Theodore Tso
2009-07-02 18:12                     ` Alan Cox
2009-07-02 21:25                       ` James Bottomley
2009-07-01 11:48     ` Boaz Harrosh
2009-07-01 12:28       ` tridge
2009-07-01 15:44       ` James Bottomley
2009-07-02 22:03         ` Pavel Machek
2009-07-06 20:41         ` Jamie Lokier
2009-07-07 10:02           ` Boaz Harrosh
2009-07-07 11:25             ` Jamie Lokier
2009-07-07 11:48               ` Boaz Harrosh
2009-07-07 11:50                 ` tridge
2009-07-02 22:00     ` Pavel Machek
2009-07-02 22:23       ` tridge
2009-07-02 22:41         ` Pavel Machek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87hbxhwv0j.fsf@devron.myhome.or.jp \
    --to=hirofumi@mail.parknet.co.jp \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=Martin@lichtvoll.de \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=corbet@lwn.net \
    --cc=jcm@jonmasters.org \
    --cc=jengelh@medozas.de \
    --cc=john.lanza@linux.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pavel@ucw.cz \
    --cc=rusty@rustcorp.com.au \
    --cc=shaggy@linux.vnet.ibm.com \
    --cc=tridge@samba.org \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.