cvs commit: src/sys/kern vfs_syscalls.c
Simon 'corecode' Schubert
corecode at fs.ei.tum.de
Wed Aug 17 07:47:09 PDT 2005
On 16.08.2005, at 22:37, Joerg Sonnenberger wrote:
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.
Yes that's true. It talks either about symbolic links or links
(meaning hard links i guess). Yet I don't see why resolve should one
time mean pathname->inode and the other time
path-with-symlinks-or-relative->pathname
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.
Wrong interpretation in my eyes.
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?
Do the clients issue remove operations? I was thinking they just send
"rename a to b" the server, which in turn does the job.
NFS is not a good example anyways because it operates with
maybe-outdated data.
cheers
simon
--
Serve - BSD +++ RENT this banner advert +++ ASCII Ribbon /"\
Work - Mac +++ space for low $$$ NOW!1 +++ Campaign \ /
Party Enjoy Relax | http://dragonflybsd.org Against HTML \
Dude 2c 2 the max ! http://golden-apple.biz Mail + News / \
Attachment:
PGP.sig
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pgp00022.pgp
Type: application/octet-stream
Size: 186 bytes
Desc: "Description: This is a digitally signed message part"
URL: <http://lists.dragonflybsd.org/pipermail/commits/attachments/20050817/be021a50/attachment-0022.obj>
More information about the Commits
mailing list