cifs client 1.45 for 2.4.x missing directory listings

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

cifs client 1.45 for 2.4.x missing directory listings

Schultz, Dale C.
Hello:
Below is a very helpful exchange I've had with Yehuda about the operation of the cifs client on 2.4 kernels.  In short I think this problem I'm having is similar to bug 1304 (https://bugzilla.samba.org/show_bug.cgi?id=1304).
I was using cifs 1.20c on a 2.4.19 Mandrake kernel to mount multiple remote shares on the same NetApp filer.  I would get intermittent directory listing with 'ls'.
I thought upgrading to the latest version 1.45 would solve the problem.  With Yehuda's help I was able to get 1.45 complied and operational on my 2.4 kernel, but the problem remains.
If anyone can offer a patch for version 1.20c or 1.45 for kernel 2.4 I'll gladly give it a try.
Thanks.
Dale

________________________________

From: Schultz, Dale C.
Sent: Thu 9/28/2006 7:56 PM
To: 'Yehuda Sadeh Weinraub'
 

Hi:

As you suggested I compiled cifs version 1.45 on my 2.6.12-12mdk kernel machine (cifs was at version 1.34).

I did a ls -R on the mount point before and after the change of the cifs.ko module and both outputs have the same number of lines in the capture.

wc output:

54855  514143 3376540 /home/dale/filer_134_dir.txt

---

54855  514143 3376063 /home/dale/filer_145_dir.txt

 

only about 500 bytes difference.

 

So this would seem to suggest that the problem lies in the backport to the 2.4 kernel as you hinted to.

 

I can email the list... it may help someone else someday if this gets archived.

 

Thanks for all your help.

Dale

 

-----Original Message-----
From: Yehuda Sadeh Weinraub [mailto:[hidden email]]
Sent: Thursday, September 28, 2006 2:29 PM
To: Schultz, Dale C.


 

I'm not sure I will be able to get into it before tuesday, so maybe sending this question to the linux-cifs-client list might be a good idea. I saw the same problem you described with the old version of the module, but not with the newer one (I've tested it against a Netapp simulator, version 6.X). However, I haven't checked the exact version that you have, so maybe one of the fixes broke it. If you're in to it, you can try to compile the same module version against your 2.6 kernel, and try to run it there, so we're sure that the problem is in the 2.4 port. I'm not sure that the tcpdump will help here as this was a known bug that was fixed. Maybe trying to debug the cifs_readdir() function might help here.

 

Yehuda

 

________________________________

From: Yehuda Sadeh Weinraub
Sent: ? 28/09/2006 20:54
To: Schultz, Dale C. [mailto:[hidden email]]

Thanks for pointing me in the right direction.  I was using a different .config file so I copied the one saved in the /boot/ directory over to the source directory and used it.  I disabled the POSIX option (and statistics) and recompiled.  I still get the unused variable codepage warning but at least now the unresolved symbol issue has been resolved.  The module is loaded and I can once again mount remote shares.

 

Now that I'm past all that...I still have the same issue with the newer code as I did with the older code.  When I do an 'ls' on a cifs mounted share on the NetApp I will intermittently get a listing.  If I do it repeatedly sometimes I get a listing and sometimes I don't.  I captured an IP trace with tcpdump and if I sift through the payload I can see that the server is sending the directory listing but there is no output from the 'ls' command.  I tried a couple of cifs options such as 'direct' (that made things worst) and serverino (unsupported according to output in kernel log) without any luck.

 

At a low level this is the problem that I see.  Higher up, I use the mounted shares as a repository of info available via my apache web server.  If I browse the remote share via the web interface I get the same result, no dir listings.  If I specify the full URL to a file there is no impact on accessing the file, it is always displayed.  The problem is that I don't link to all the files, sometimes I just provide a link to the directory and let the user pick a file from the listing, but without a listing the directory appears empty.

 

I can provide some traces (tcpdump) or cifs module debug if you are able to assist in debugging this issue with me, just let me know what you are interested in.  Or if there is another avenue for support just let me know.

 

Here is the DebugData for my shares (two against the NetApp filer and one against a Win2003 Server):

[root@vsat linux]# cat /proc/fs/cifs/DebugData

Display Internal CIFS Data Structures for Debugging

---------------------------------------------------

Servers:

 

1) Name: 98.180.10.8  Domain: TELESAT Mounts: 1 ServerOS: Windows Server 2003 3790 Service Pack 1

        ServerNOS: Windows Server 2003 5.2      Capabilities: 0x1f3fd

        SMB session status: 3   TCP status: 1

        Local Users To Server: 1 SecMode: 0xf Req Active: 0

MIDs:

 

2) Name: 172.16.2.188  Domain: TELESAT Mounts: 2 ServerOS: Windows 5.0

        ServerNOS: Windows 2000 LAN Manager     Capabilities: 0xd3fd

        SMB session status: 1   TCP status: 1

        Local Users To Server: 1 SecMode: 0x3 Req Active: 0

MIDs:

 

 

Shares:

 

1) \\hqdfiler\Business Devel Uses: 1 Type: NTFS Characteristics: 0x20 Attributes: 0x4000f

PathComponentMax: 255 Status: 1 type: DISK

2) \\T25-SERVER\T25 Data Uses: 1 Type: NTFS Characteristics: 0x20 Attributes: 0x700ff

PathComponentMax: 255 Status: 3 type: DISK

3) \\hqdfiler\ds1350 Uses: 1 Type: NTFS Characteristics: 0x20 Attributes: 0x4000f

PathComponentMax: 255 Status: 1 type: DISK

 

Thanks.

Dale

 

-----Original Message-----
From: Yehuda Sadeh Weinraub [mailto:[hidden email]]
Sent: Thursday, September 28, 2006 2:14 AM
To: Schultz, Dale C.
Subject: RE: [linux-cifs-client] cifs 1.45 for 2.4.x

 

It looks like two different issues. First, you should disable the CONFIG_CIFS_POSIX option, so that it doesn't compile. This feature hasn't been backported, and I guess you haven't used it since the old version didn't really implement it. The first two warnings are ok.

The second issue is that there is a mismatch between the kernel on the machine and the kernel that the module was compiled against (probably different configuration). I've seen similar messages when tried to run a module that was compiled against sources for Intel processors and the machine was running a kernel for AMD. In any case, you should use the appropriate .config file. Another solution is to recompile the kernel with the current configuration and to install the new kernel on the machine. In any case, the module and the running kernel should be compiled with the same configuration.

 

________________________________

From: Schultz, Dale C. [mailto:[hidden email]]
Sent: Thursday, September 28, 2006 6:02 AM
To: Yehuda Sadeh Weinraub


 

Hi again:

I've applied your patch to the latest version (83) without any issues.

 

I then complied with only a couple of warnings.

dir.c: In function `cifs_ci_hash':

dir.c:605: warning: unused variable `codepage'

dir.c: In function `cifs_ci_compare':

dir.c:621: warning: unused variable `codepage'

ioctl.c: In function `cifs_ioctl':

ioctl.c:84: warning: implicit declaration of function `put_user'

ioctl.c:92: warning: implicit declaration of function `get_user'

 

But I can't get the module to load.  This is the result of loading:

[root@vsat linux]# modprobe cifs

/lib/modules/2.4.19-16mdksecure/kernel/fs/cifs/cifs.o: unresolved symbol sock_sendmsg_Rsmp_86023ef6

/lib/modules/2.4.19-16mdksecure/kernel/fs/cifs/cifs.o: unresolved symbol get_user

/lib/modules/2.4.19-16mdksecure/kernel/fs/cifs/cifs.o: unresolved symbol CIFSGetExtAttr

/lib/modules/2.4.19-16mdksecure/kernel/fs/cifs/cifs.o: unresolved symbol sock_create_Rsmp_f6e3fc39

/lib/modules/2.4.19-16mdksecure/kernel/fs/cifs/cifs.o: unresolved symbol sock_release_Rsmp_31833bf8

/lib/modules/2.4.19-16mdksecure/kernel/fs/cifs/cifs.o: unresolved symbol sock_recvmsg_Rsmp_b49e9a9e

/lib/modules/2.4.19-16mdksecure/kernel/fs/cifs/cifs.o: unresolved symbol put_user

modprobe: insmod /lib/modules/2.4.19-16mdksecure/kernel/fs/cifs/cifs.o failed

modprobe: insmod cifs failed

 

Is there any way to correct this?

Thanks.

Dale

 

-----Original Message-----
From: Yehuda Sadeh Weinraub [mailto:[hidden email]]
Sent: Wednesday, September 27, 2006 3:57 AM
To: Schultz, Dale C.


Sure.

 

This patch applies to the latest sources from the svn tree:

svn co svn://svnanon.samba.org/linux-cifs-client/branches/linux-converged-for-old-kernels

 

Note that it's quite a different patch than the one I've sent to  the list, since some of it is already committed in the svn, and some other stuff was fixed a bit differently by Steve French. I've added a few lines to make it compile against 2.4.19 vanilla, but I haven't checked this version, so please let me know if you encounter any problems.

 

Yehuda

 

________________________________

From: Schultz, Dale C. [mailto:[hidden email]]
Sent: Tuesday, September 26, 2006 10:34 PM
To: Yehuda Sadeh Weinraub


Hello:

I have a Mandrake installation using kernel 2.4.19.  I'm currently using CIFS version 1.20c patched for the 2.4 kernel.  I'd like to update CIFS to a more recent version as I'm loosing directory listing when mounted against a Network Appliance (NetApp) filer.  This doesn't seem to happen on a temporary 2.6 kernel server I loaded.

Can you provide me all the patch files you used against CIFS 1.45 to compile against version 2.4 kernel?  The ones on the mail list are mangled at the 70 character limit.

Thanks.

Dale


_______________________________________________
linux-cifs-client mailing list
[hidden email]
https://lists.samba.org/mailman/listinfo/linux-cifs-client

patch-2.4 (19K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

cifs client 1.45 for 2.4.x missing directory listings

Schultz, Dale C.
cifs client 1.45 for 2.4.x missing directory listings

Further to my last email…I enabled the cifsFYI and captured some stuff I don’t really understand but I compared it to a server running a 2.6 kernel and CIFS 1.45.  In the comparison I discovered that the CIFS module on the 2.4 kernel system was not the newly complied 1.45 version but the old 1.20c one.  I rebooted the server with the new module in place and found it would not load.  I decided to go through the whole exercise of re-compiling the kernel and the modules as the CIFS module was complaining about unresolved symbols.  After the recompile and installation of the new kernel and the modules, Im happy to report that CIFS 1.45 is working on my 2.4 kernel machine.

(Apparently I was an operator in error)

Dale


_______________________________________________
linux-cifs-client mailing list
[hidden email]
https://lists.samba.org/mailman/listinfo/linux-cifs-client
Reply | Threaded
Open this post in threaded view
|

Re: cifs client 1.45 for 2.4.x missing directory listings

markian
This post has NOT been accepted by the mailing list yet.
Hello,

I suggest you to download new Long Path Tool software that simply allows you to work easily on Long Path files.

Thank you.