[linux-cifs-client] Re: io blksize problem with cifs

Steven French sfrench at us.ibm.com
Tue Sep 19 15:19:53 GMT 2006


Could you see if this is also a problem with current code as well 
http://pserver.samba.org/samba/ftp/cifs-cvs/cifs-1.45.tar.gz?

compile ("make M=<dir you downloaded the fs/cifs files to>") and 
/sbin/insmod the cifs.ko you just built

I have tested that backported version of current cifs on 2.6.16 (and 2.6.9 
etc.) but not 2.6.17 but it should be ok.


Steve French
Senior Software Engineer
Linux Technology Center - IBM Austin
phone: 512-838-2294
email: sfrench at-sign us dot ibm dot com



sbenni at gmx.de 
09/19/2006 08:46 AM

To
akpm at osdl.org
cc
sfrench at samba.org, linux-cifs-client at lists.samba.org
Subject
io blksize problem with cifs







Hello,

Since I have changed from kernel version 2.6.17 to 2.6.17-mm6 I get the 
following error when I type ls in a cifs mounted directory with more than 
a certain number of files in it. 

rupi at pluto:/mnt/test$ ls
ls: reading directory .: Invalid argument

digest from "strace -v ls" :

open(".", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3
fstat(3, {st_dev=makedev(0, 18), st_ino=2, st_mode=S_IFDIR|0777, 
st_nlink=176, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=0, st_size=0, 
st_atime=2006/09/19-13:18:15, st_mtime=2006/08/16-10:44:24, 
st_ctime=2006/08/16-10:44:24}) = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
getdents64(3, 0x51a518, 4096)           = -1 EINVAL (Invalid argument)

Note, that st_blksize is 4096 instead of 16384 as with version 2.6.17


Tested with 3.0.14a-3sarge2 from Debian and 3.0.22-0bpo1 from backports on 
the server side,
same result everytime. 

But it works with Windows 2003 Server, although the io blksize is also 
4096 :

fstat(3, {st_mode=S_IFDIR|0777, st_size=0, ...}) = 0
fcntl(3, F_SETFD, FD_CLOEXEC)           = 0
getdents64(3, /* 48 entries */, 4096)   = 1608
getdents64(3, /* 26 entries */, 4096)   = 1824
getdents64(3, /* 25 entries */, 4096)   = 1792
getdents64(3, /* 23 entries */, 4096)   = 1312
getdents64(3, /* 0 entries */, 4096)    = 0


Output of /proc/fs/cifs/DebugData on the client side :

Display Internal CIFS Data Structures for Debugging
---------------------------------------------------
CIFS Version 1.44
Active VFS Requests: 0
Servers:
1) Name: 192.168.111.5  Domain: MILKY.WAY Mounts: 1 OS: Unix 
        NOS: Samba 3.0.14a-Debian       Capability: 0x80e3fd
        SMB session status: 3   TCP status: 1
        Local Users To Server: 1 SecMode: 0x3 Req On Wire: 0
MIDs:

Shares:
1) \\192.168.111.5\public Uses: 1 Type: NTFS DevInfo: 0x0 Attributes: 0x2b
PathComponentMax: 255 Status: 3 type: 0         DISCONNECTED 



Unfortunatley I couldn't find the reason, but perhaps it has to do 
something with the fact that the i_blksize variable of the inode struct 
has been removed  ?

I have attached cifs debug output of mounting a share and ls on it.



Benjamin 


 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cifsdebug.gz
Type: application/octet-stream
Size: 4109 bytes
Desc: not available
Url : http://lists.samba.org/archive/linux-cifs-client/attachments/20060919/6281b190/cifsdebug.obj


More information about the linux-cifs-client mailing list