[linux-cifs-client] new readdir code

Gorazd Golob gorazdg at noviforum.si
Tue Nov 30 13:53:22 GMT 2004


Steve!

I compiled new code from bk tree and enabled new cifs code. I mounted
share from w2k server. I was unable to list files. When I chdir to one
known directory I got dmesg full of messages (see below) until system run
out of memory (few seconds - depends on ram and swap). Extended attributes
and Posix layer are not included in kernel - happens same if they are
enabled. Kernel can't kill processes so system freeze.

Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x305e matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x305f matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3060 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3061 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3062 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3063 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3064 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3065 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3066 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3067 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3068 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3069 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x306a matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x306b matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x306c matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x306d matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x306e matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x306f matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3070 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3071 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3072 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3073 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3074 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3075 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3076 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3077 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3078 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x3079 matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x307a matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x307b matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80
 fs/cifs/connect.c: Peek length rcvd: 0x24 beginning 0x27)
 fs/cifs/connect.c:  Mid 0x307c matched - waking up
Status code returned 0xc0000008 NT_STATUS_INVALID_HANDLE
 fs/cifs/netmisc.c:  !!Mapping smb error code 6 to POSIX err -9 !!
 fs/cifs/readdir.c: calling findnext2
 fs/cifs/cifssmb.c: In FindNext
 fs/cifs/transport.c: For smb_command 50
 fs/cifs/transport.c: Sending smb of length 80

> The code is not quite ready (e.g. resume keys are not sent to Windows
> servers yet, which impacts large directory searches when servers do not
> support the CIFS Unix Extensions and when server inode numbers are used
> the QPathInfo call which returns inode numbers is not being used to
> Windows servers yet), but it does seem to pass all connectathon cases
> (including the search rewind one) with servers that support the CIFS Unix
> Extensions which is an improvement (search rewind was broken).   It should
> also fix the multibyte file translation problems on readdir and the oops
> in cifs_readdir.
>
> In addition support for POSIX ACLs (get only) is enabled in the cifs
> client now if the server supports CIFS Unix Extensions and negotiates
> posix acl support (which is the case for most current Samba from svn -
> thanks jra).  This can be disabled via a new mount option (it is enabled
> by default).
>
>
> Steve French
> Senior Software Engineer
> Linux Technology Center - IBM Austin
> phone: 512-838-2294
> email: sfrench at-sign us dot ibm dot com


More information about the linux-cifs-client mailing list