cvs commit: src/sys/kern vfs_syscalls.c
Joerg Sonnenberger
joerg at britannica.bec.de
Tue Aug 16 13:38:09 PDT 2005
On Tue, Aug 16, 2005 at 12:40:37PM -0700, Matthew Dillon wrote:
> Uh, no. The part about the files being the same is clearly
> NOT about symlinks at all. Those are a random tumble of disjoint
> requirements, they are not related to each other in any way. Rename
> does NOT resolve symlinks. It never has, it never will.
Fully aggred.
> They also can't be refering to hardlinks, or the standard would say
> hardlinks.
The standard *never* says hardlinks either. It is always talking about
directory entries or links.
> They have to be refering to the paths resolving to the same
> identical namespace, in which case we are right, linux is right,
> and FreeBSD is wrong.
"Resolving to the same existing file" leaves the pure namespace, because
the standard differenciates between files (UFS: inode) and directory
entries.
> It's simple and straightfoward, not ultra complex. It is not
> rename's responsibility to validate or resolve symlinks, or to
> treat hardlinks as a special case. rename is entirely a namespace
> operation. The only requirements are that it disallow impossible
> combinations, such as trying to rename a file over a directory,
> or rename a directory into a sub-directory of itself.
As soon as the "new" operand already exists it is not a pure namespace
operation anymore. What happens if two NFS clients have the directory
cached, the first issues "mv a b", the second "mv b a"? Are both clients
issuing remove operations with the new code?
Joerg
More information about the Commits
mailing list