[linux-cifs-client] symlink(2) returns EOPNOTSUPP and not EPERM over CIFS.

Ralph Corderoy ralph at inputplus.co.uk
Wed Mar 25 11:49:26 GMT 2009


Hi,

[Not subscribed to list, please CC.]

In helping a fellow LUG member I found symlink(2) on a CIFS can return
EOPNOTSUPP.  symlink() on a local VFAT returns EPERM, and Google suggests
SMB does the same.  errno(3) says

    EOPNOTSUPP   Operation not supported on socket (POSIX.1)

suggesting it's only talking about socket-related syscalls.  Google also
finds cases of user-space, e.g. rdiff-backup, having problems because
they understand symlink() returning EPERM but not EOPNOTSUPP, and,
indeed, symlink(2) has EPERM but doesn't say EOPNOTSUPP is a valid errno
on this Ubuntu 8.04 system.

    EPERM  The filesystem containing newpath does not support the creation of
           symbolic links.

So, has CIFS deviated?  Was it intentional?  And is it worth altering to
match the majority if it's in a minority?

Cheers,


Ralph.



More information about the linux-cifs-client mailing list