CIFS mounted drive issue
Yegor Yefremov
yegorslists at googlemail.com
Tue Mar 30 08:34:10 UTC 2010
I have problems making "ls -l /mnt" on CIFS mounted drives. Instead of
file listing I get following error: Value too large for defined data
type.
My system is:
CPU: ARM9 ks8695
kernel 2.6.32/33
uClibc 0.9.27
I had no problems with the same uClibc and kernel 2.6.26. I have also
tried openwrt with uClibc 0.9.30.1/2, but with the same result: ls -l
fails.
Large File Support was enabled in both uClibc and busybox. I even
tried non busybox ls, but with the same result.
The same kernel make no problem with ARM Debian.
I think it has something to do with fstat call. Please compare strace
outputs from uCliux and Debian.
uClinux:
lstat64("/mnt", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
brk(0) = 0x76000
brk(0x77000) = 0x77000
open("/mnt", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3
fstat(3, 0xbed38ce0) = -1 EOVERFLOW (Value too
large for defined data type)
close(3) = 0
brk(0x78000) = 0x78000
ioctl(2147483647, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbed38c2c) = -1
EBADF (Bad file descriptor)
brk(0x79000) = 0x79000
write(2, "ls: can't open '/mnt': Value too"..., 61ls: can't open
'/mnt': Value too large for defined data type
) = 61
Debian:
open("/mnt", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0
fcntl64(3, F_GETFD) = 0x1 (flags FD_CLOEXEC)
getdents64(3, /* 6 entries */, 16384) = 176
lstat64("/mnt/oldinitrd.gz", {st_mode=S_IFREG|0755, st_size=2739802, ...}) = 0
lgetxattr("/mnt/oldinitrd.gz", "security.selinux", 0x2f248, 255) = -1 EOPNOTSUPP
(Operation not supported)
getxattr("/mnt/oldinitrd.gz", "system.posix_acl_access", 0x0, 0) = -1 EOPNOTSUPP
(Operation not supported)
lstat64("/mnt/oldkparam", {st_mode=S_IFREG|0755, st_size=31, ...}) = 0
lgetxattr("/mnt/oldkparam", "security.selinux", 0x2f260, 255) = -1
EOPNOTSUPP (Operation not supported)
getxattr("/mnt/oldkparam", "system.posix_acl_access", 0x0, 0) = -1
EOPNOTSUPP (Operation not supported)
lstat64("/mnt/oldzImage", {st_mode=S_IFREG|0755, st_size=1959948, ...}) = 0
lgetxattr("/mnt/oldzImage", "security.selinux", 0x2f260, 255) = -1
EOPNOTSUPP (Operation not supported)
getxattr("/mnt/oldzImage", "system.posix_acl_access", 0x0, 0) = -1
EOPNOTSUPP (Operation not supported)
lstat64("/mnt/zImage", {st_mode=S_IFREG|0755, st_size=2029208, ...}) = 0
lgetxattr("/mnt/zImage", "security.selinux", 0x2f270, 255) = -1
EOPNOTSUPP (Operation not supported)
getxattr("/mnt/zImage", "system.posix_acl_access", 0x0, 0) = -1
EOPNOTSUPP (Operation not supported)
getdents64(3, /* 0 entries */, 16384) = 0
close(3) = 0
Any idea?
Regards,
Yegor
More information about the uClibc
mailing list