Subject: bug#68283: ls -l issues on cifs mounted directories

From: Pádraig Brady <[email-masked]>
Date: Sat, 6 Jan 2024 14:48:21 +0000

On 06/01/2024 13:08, Bjoern Voigt via GNU coreutils Bug Reports wrote:
> After upgrading coreutils from version 9.3 to 9.4, "ls -l" shows error
> messages, if the files or directories are in a cifs/smb3 mounted directory.
> 
> Example:
> /mnt/cifstest here is mounted with "mount -t cifs -o username=myuser
> //192.168.1.2/all /mnt/cifstest/". The server is a Samba 4.19.2 server.
> The kernel is version 6.1.71.
> 
> # ls -l /mnt/cifstest/
> ls: /mnt/cifstest/: Resource temporarily unavailable

> "ls -l" from coreutils 9.3 does not show any errors.
> 
> Probably it is not just the error message. "dmesg -w" shows several
> errors after executing "ls -l":
> 
> [17563.999109] smb2_reconnect: 3 callbacks suppressed
> [17563.999113] CIFS: VFS: reconnect tcon failed rc = -11

> I debugged this problem a bit. The changes in
> coreutils-9.4/lib/file-has-acl.c:file_has_acl are probably responsible
> for the errors. The system call listxttr produces the error message
> "Resource temporarily unavailable". I could not find the reasons for
> error messages shown with "dmesg".
> 
> The listxattr.c test program in the manual page (man listxattr) shows
> the following output:
> 
> # ./listxattr /mnt/cifstest/
> listxattr: Resource temporarily unavailable
> 
> Work-around are to downgrade to coreutils 9.3 or not to use the "-l"
> option for ls.

Thanks for the details.
EAGAIN is not a documented return from listxattr,
and it seems like the cifs client should not let that leak.
Perhaps the kernel needs another change along the lines of:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6efa994e35a
(That was included in v5.18).

Perhaps something to ask at [email-masked] ?

If this is a common enough issue then it might be appropriate for us to handle,
but given the current info, ls is just informing you of an actual issue on your system.

thanks,
Pádraig