From: ebiederm@xmission.com (Eric W. Biederman)
To: tridge@samba.org
Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>,
john.lanza@linux.com, linux-kernel@vger.kernel.org,
linux-fsdevel@vger.kernel.org,
Dave Kleikamp <shaggy@linux.vnet.ibm.com>,
Steve French <sfrench@us.ibm.com>, Mingming Cao <cmm@us.ibm.com>,
Paul McKenney <paulmck@linux.vnet.ibm.com>
Subject: Re: [PATCH] Added CONFIG_VFAT_FS_DUALNAMES option
Date: Sat, 27 Jun 2009 21:10:57 -0700 [thread overview]
Message-ID: <m1vdmh2e26.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <19014.54044.484370.187018@samba.org> (tridge@samba.org's message of "Sun\, 28 Jun 2009 12\:19\:08 +1000")
tridge@samba.org writes:
> Hi Eric,
>
> > This hunk allowing the examination of the long name if there is not a
> > short name is something else entirely.
> >
> > You don't describe it in your summary, and don't make the case that
> > this is the correct behavior.
>
> Sorry for not explaining that part of the patch in my posting.
>
> The reason I initially included it was that during the development of
> this patch we were experimenting with variations of the
> vfat_build_dummy_83_buffer() function which put a wide varity of
> different values in the 11 bytes where a short filename would normally
> go.
>
> The most technically attractive varient was to put 11 spaces in
> there. That has the advantage that Windows then returns the long name
> to the GetShortPathName() API call, which is also what Windows does on
> a NTFS filesystem when the NTFS filesystem is configured not to have
> 8.3 names. So it would have been very nice to have this same behaviour
> on VFAT, instead of getting a single space back from
> GetShortPathName() as we get with the patch I posted.
>
> The reason we didn't go with the 11 spaces varient is that it causes
> WindowsXP to bluescreen. This is just a bug in WinXP, and is not
> present in Vista or Windows7.
>
> The 2nd technical problem with 11 spaces is that current Linux kernels
> would not see the long names, as the last_u logic in fat_search_long()
> will skip files where the the 11 bytes don't have at least one
> non-space byte before the first nul byte in either the 8 byte prefix
> or the 3 byte extension.
>
> The last_u logic is at odds with the behaviour of other operating
> systems for VFAT. On all windows varients that I have tested (and on
> MacOSX), the long name is still used no matter what values are in the
> 11 bytes. You can stick all nul bytes, all spaces, or anything else
> you like in there and Windows will still allow you to operate on the
> file by the long name and the filesystem will work perfectly.
>
> So that part of the patch is bringing us inline with the behaviour of
> other VFAT implementations.
>
> More importantly, it gives us the opportunity in the future to move to
> the techically better 11 spaces solution when either Microsoft fixes
> their WindowsXP crash bug, or WindowsXP has such a low market share
> that nobody cares any more (say like WfWg and maybe Win95 has now).
>
> If we don't put in this change now then we won't be able to move to
> the technically better solution later as we wouldn't have given Linux
> distros a chance to include support for the 11 spaces in distros. By
> putting that change in now, when (if?) we change to 11 spaces later we
> will not be breaking recent Linux kernels.
>
> > This should probably be split out into a separate patch if it is the
> > right thing to do, or drop it if (as it looks) there is no point in
> > that change.
>
> hopefully the above explanation makes it clear why the last_u change
> should go together with the vfat_build_slots() change.
It is part of the same investigation certainly.
Given what you have said our interpretation of vfat has a bug,
and that small change is a candidate for -stable. If it could
be it's own patch.
That change seems much less controversial and obviously correct
than the other.
Eric
next prev parent reply other threads:[~2009-06-28 4:11 UTC|newest]
Thread overview: 195+ 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 [this message]
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-02 23:17 ` CONFIG_VFAT_FS_DUALNAMES regression Jan Engelhardt
2009-07-02 23:37 ` tridge
2009-07-03 0:11 ` Jan Engelhardt
2009-07-03 0:25 ` tridge
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-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:59 ` tridge
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 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 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-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:27 ` Jan Engelhardt
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
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 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 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
[not found] <4bbed3f70907082014t643209eaw5fc7cd7297f7af78@mail.gmail.com>
2009-07-09 13:16 ` John Lanza
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=m1vdmh2e26.fsf@fess.ebiederm.org \
--to=ebiederm@xmission.com \
--cc=cmm@us.ibm.com \
--cc=hirofumi@mail.parknet.co.jp \
--cc=john.lanza@linux.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=sfrench@us.ibm.com \
--cc=shaggy@linux.vnet.ibm.com \
--cc=tridge@samba.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).