Source-Changes-D archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys/kern
On Fri, Oct 19, 2012 at 02:07:23AM +0000, Taylor R Campbell wrote:
> Module Name: src
> Committed By: riastradh
> Date: Fri Oct 19 02:07:23 UTC 2012
>
> Modified Files:
> src/sys/kern: vfs_syscalls.c
>
> Log Message:
> No, we can't elide the fs-wide rename lock for same-directory rename.
>
> rename("a/b", "a/c") and rename("a/c/x", "a/b/y") will deadlock.
Surely it just converts rename("a/c/x", "a/b/y") into rename("a/c/x", "a/c/y")
which isn't quite the intended operation.
Maybe convert the fs-wide rename lock into a rw-lock and only require
read access for a same-directory rename.
That might only be useful in the common case where the two directory
paths are the same actual character - when only one VOP_LOOKUP()
is needed at all and the child inodes don't even need looking at.
I suspect the DNLC (and any other caches) will need both rename ops done
atomically though.
David
--
David Laight: david%l8s.co.uk@localhost
Home |
Main Index |
Thread Index |
Old Index