[linux-cifs-client] Problem with stat() on CIFS.

Bart Oldeman bartoldeman at users.sourceforge.net
Wed Dec 16 20:35:14 MST 2009


Hi,

on 32-bit systems using plain stat() (not stat64()) is problematic on
CIFS mount points (kernel 2.6.32):

$ stat /home/bart/cifs
  File: `/home/bart/cifs'
  Size: 0               Blocks: 0          IO Block: 16384  directory
Device: 11h/17d Inode: 8839049314305  Links: 1
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2009-12-16 22:14:55.000000000 -0500
Modify: 2009-12-16 22:14:00.000000000 -0500
Change: 2009-12-16 22:14:00.000000000 -0500

As you can see the inode number is very high: 0x80a00650001
Glibc's stat() calls the kernel's stat64(), tries to convert the
struct stat64 structure to a "struct stat" and fail.

Note that I've only seen this with a Samba server when Unix extensions
were NOT enabled -- if they are enabled I get 0x650001 as the inode
number which is OK.

See also PHP bug 50150 (http://bugs.php.net/50150)

Regards,
Bart Oldeman


More information about the linux-cifs-client mailing list