smbfs patches (linux-2.2.19 and 2.0.7)

Giulio Orsero giulioo at pobox.com
Sun Apr 22 10:42:46 GMT 2001


So far, I've been using
linux 2.2.16 + smbfs-nls-2.2.16-pre2.patch
and
samba-2.0.7 + samba-2.0.7-2.2.16pre2-nls.patch
and this worked perfectly.

Now I've upgraded to linux-2.2.19, and I understand it does not need to be
patched.
CONFIG_SMB_FS=m
CONFIG_SMB_NLS_DEFAULT=y
CONFIG_SMB_NLS_REMOTE="cp850"
CONFIG_NLS_DEFAULT="cp850"
However, localpage=iso8859-1,rmtpage=cp850 would not work:

mount.smbfs: failed to set nls pages.

So I thought to recompile samba 2.0.7 + samba-2.0.7-2.2.16pre2-nls.patch using
the new 2.2.19 kernel headers:
Compiling client/smbmount.c
client/smbmount.c: In function `set_nls_page':
client/smbmount.c:367: storage size of `cp' isn't known
client/smbmount.c:378: `SMB_IOC_SETCODEPAGE' undeclared (first use in this funct
ion)
client/smbmount.c:378: (Each undeclared identifier is reported only once
client/smbmount.c:378: for each function it appears in.)
make: *** [client/smbmount.o] Error 1

Then I reverted the samba-2.0.7-2.2.16pre2-nls.patch patch and applied
smbmount-2.0.7-ascii+fixes.patch; it compiled ok, but now
localpage=iso8859-1,rmtpage=cp850 does not seem to have any effect, I see ? ? in
place of accented chars.

I tried changing smbmount patch to force ascii on 2.2
+   if (major && minor && atoi(major) == 2 && atoi(minor) < 4) {
+       /* < 2.4, assume struct */
+       data1 = opts;                        <=====  like 2.4
+       data2 = (char *) data;            <=======  like 2.4
+   } else {
+       /* >= 2.4.0-test, assume ascii but fall back on struct */
+       data1 = opts;
+       data2 = (char *) data;

but no luck.

What's the correct procedure?

Thanks.

-- 
giulioo at pobox.com




More information about the samba mailing list