[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100310161429.GA16799@frolo.macqel>
Date: Wed, 10 Mar 2010 17:14:30 +0100
From: Philippe De Muyter <phdm@...qel.be>
To: OGAWA Hirofumi <hirofumi@...l.parknet.co.jp>
Cc: linux-kernel@...r.kernel.org
Subject: Re: [PATCH vfat] allow retrieving entries with trailing dots
Hello Ogawa
Thanks for the quick answer.
On Wed, Mar 10, 2010 at 11:44:27PM +0900, OGAWA Hirofumi wrote:
> Philippe De Muyter <phdm@...qel.be> writes:
>
> > --- a/fs/fat/namei_vfat.c 2009-09-10 00:13:59.000000000 +0200
> > +++ b/fs/fat/namei_vfat.c 2010-02-08 02:28:37.010096903 +0100
> > @@ -702,9 +702,22 @@
> > static int vfat_find(struct inode *dir, struct qstr *qname,
> > struct fat_slot_info *sinfo)
> > {
> > - unsigned int len = vfat_striptail_len(qname);
> > + int err;
> > + unsigned int len;
> > +
> > + /* Some combined ethernet + usb external hard drive do not
> > + * remove the trailing dots when creating entries in ethernet mode.
> > + * (e.g. Iomega Home Network Hard Drive)
> > + * Make accessing those entries possible.
> > + */
> > + err = fat_search_long(dir, qname->name, qname->len, sinfo);
> > + if (!err)
> > + return err;
> > + len = vfat_striptail_len(qname);
> > if (len == 0)
> > return -ENOENT;
> > + if (len == qname->len)
> > + return err;
> > return fat_search_long(dir, qname->name, len, sinfo);
> > }
>
> This would be bad for both (standard and IO-MEGA hack).
>
> This introduces unneeded directory-parse to standard one. And for
No. There will only be a second parse if someone is looking for a filename
with a trailing dot, and it is not found (*). I there is no trailing dot in qname, only the first fat_search_long will be called, because len after vfat_striptail_len would be equal to qname->len.
> IO-MEGA, this wouldn't provide proper filename handling.
For accessing IO-MEGA disk in read mode, this is perfect. I didn't want
to replicate IO-MEGA write behaviour here, only fix the read behaviour for
such simple commands as 'ls', 'find' and all the directory browsers.
>
> If it wants to handle the tailing-dot as a part of filename, it
> shouldn't be able to access to the stripped-dots filename. (For simple
> example, I guess you can't do "mv a a." with this patch.)
As I explained above, I only fix read-access on IO-MEGA drives, while
preserving standard behaviour for write mode.
But I'll try your testcase asap. Which behaviour do you expect ?
I would expect a no-op, because I did not change the write-behaviour.
Best regards
Philippe
(*) This will never happen with 'ls', 'find' and friends who get their name
list from getdents. This could only happen if someone tries to open
a file called 'a.' on his vfat file-system, which of course does not exist
in his normal vfat file-system.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists