Re: [patch] mount.nfs: Add support for nfs://-URLs ...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 11 Dec 2024 at 05:26, NeilBrown <neilb@xxxxxxx> wrote:
>
> On Tue, 10 Dec 2024, Cedric Blancher wrote:
> > On Sun, 8 Dec 2024 at 23:12, NeilBrown <neilb@xxxxxxx> wrote:
> > > > +
> > > > + /*
> > > > + * |pnu.uctx->path| is in UTF-8, but we need the data
> > > > + * in the current local locale's encoding, as mount(2)
> > > > + * does not have something like a |MS_UTF8_SPEC| flag
> > > > + * to indicate that the input path is in UTF-8,
> > > > + * independently of the current locale
> > > > + */
> > >
> > > I don't understand this comment at all.
> > > mount(2) doesn't care about locale (as far as I know).  The "source" is
> > > simply a string of bytes that it is up to the filesystem to interpret.
> > > NFS will always interpret it as utf8.  So no conversion is needed.
> >
> > Not all versions of NFS use UTF-8. For example if you have NFSv3 and
> > the server runs ISO8859-16 (French), then the filenames are encoded
> > using ISO8859-16, and the NFS client is assumed to use ISO8859-16 too.
> > mount(2) has options to do filename encoding conversion
> > NFSv4 is an improvement compared to NFSv3 because it uses UTF-8 on the
> > wire, but if you use the (ANSSI/Clip-OS) nls=/iocharset= mount option
> > you can enable filename encoding conversion there.
>
> I cannot find any evidence that nfs supports iocharset- or nls=
> Other filesystems do: fat, isofs, jfs, smb ntfs3 and others.
> But not NFS.
> nfs-utils doesn't appear to have any support either.

Gentoo-based ClipOS&RED FLAG Linux certainly support that, first one
for iso8859-16 mapping, and the second for GB18030. I don't know if
this is in mainline or not.
In either case mapping to local encoding is required, or as Roland's
comment indicates a mount syscall parameter to indicate the encoding
of the export path string.

>
> So I think that the string you pass on the mount command line, or in
> /etc/fstab, will be passed unchanged over-the-wire to mountd (For NFSv3)
> or passed to the kernel and thence to nfsd (for NFSv4).
>
> Do you have evidence to prove otherwise?  i.e.  can you demonstrate a
> case where changing the LOCALE causes a mount command that previously
> worked to stop working?

For SMB certainly yes. For NFSv3 certainly yes too, for example if the
NFS server runs on a filesystem with a different encoding than the
client. Might be even a subset or superset of the encoding used by the
other side, e.g. server uses Level GBK/5, but client only Level GBK/3.

Ced
-- 
Cedric Blancher <cedric.blancher@xxxxxxxxx>
[https://plus.google.com/u/0/+CedricBlancher/]
Institute Pasteur




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux