Subject: Re: ntfs & per-mount target filename encoding/codeset
To: None <jdolecek@netbsd.org, soda@sra.co.jp>
From: Noriyuki Soda <soda@sra.co.jp>
List: tech-kern
Date: 02/14/2001 18:41:47
Jaromir Dolecek <jdolecek@netbsd.org>
> > Why does this "per mount" flag?
> 
> Since I want support for encoding different volumes to different
> forms/character sets/code sets.

If this is for msdosfs, above sentence certainly makes sense.

But for ntfs, the above sentence doesn't really make sense,
because ntfs always use one codeset (i.e. UTF-16LE).
Because of this reason, you don't have to set the code which
should be converted from UTF-16LE per mount basis, what you
have to do is choose one target code.

> > Certainly msdosfs needs per mount flag.
> 
> msdosfs actually needs two per mount flags - codeset of
> the volume and codeset to which it should be recoded.

That's wrong.

msdosfs needs only one codeset per mount. That is the codeset of
the volume.
The target codeset is not "per mount" thing, but system global
or per process thing. If you set target code by per mount basis,
one filesystem returns ISO-8859-1 and other filesystem returns
Shift_JIS for same process. There is no real requirement for
such broken situation.

> > What ntfs needs is either
> > 	- system global codeset
> > or
> > 	- per process codeset
> > Isn't it?
> 
> I don't feel like defining/writing necessary interface and code
> for doing either of these.

System global codeset is easy.
You can just set it by kernel config option or sysctl interface.
BTW, the interface should be string basis and should follow
OpenGroup's standard codeset name.

> Maybe. It's equally easy to do either way. Doing this per-mount
> is easier for now (no need to add sysctl to change the system global)

No. Adding kernel config or sysctl is certainly easy and the right
thing.

> and a bit more flexible. It's good as prototype implementation, used
> to better understand what is needed for generic stuff.

Please don't add random broken thing, please.
--
soda