[OpenAFS] hardlinks, sftp, and returning EXDEV

Mike Garrison mcgarr@umich.edu
Tue, 11 Dec 2007 18:37:50 -0500


So I have a question regarding hardlinks.

I know that hardlinks work properly if they are in the same directory.  
I know it fails if it's to a different directory hierarchy. When you  
attempt to do a hard link across directory boundaries, it returns:  
EXDEV (Invalid cross-device link)

This breaks OpenSSH's sftp if you are attempting to move files. A  
rename of './blah/testfile' to './testing' will result in a failure.  
Essentially, you can't move files around. You can only rename them in  
the same directory via sftp.

I can see returning EXDEV for links across a VOLUME, since then you're  
going across devices, but why does OpenAFS return EXDEV for stuff on  
the same volume? Is there a reason that EXDEV instead of, say  
EOPNOTSUPP?

Thanks,
Mike Garrison