linux/fs/autofs4
Nick Piggin 949854d024 fs: Use rename lock and RCU for multi-step operations
The remaining usages for dcache_lock is to allow atomic, multi-step read-side
operations over the directory tree by excluding modifications to the tree.
Also, to walk in the leaf->root direction in the tree where we don't have
a natural d_lock ordering.

This could be accomplished by taking every d_lock, but this would mean a
huge number of locks and actually gets very tricky.

Solve this instead by using the rename seqlock for multi-step read-side
operations, retry in case of a rename so we don't walk up the wrong parent.
Concurrent dentry insertions are not serialised against.  Concurrent deletes
are tricky when walking up the directory: our parent might have been deleted
when dropping locks so also need to check and retry for that.

We can also use the rename lock in cases where livelock is a worry (and it
is introduced in subsequent patch).

Signed-off-by: Nick Piggin <npiggin@kernel.dk>
2011-01-07 17:50:22 +11:00
..
autofs_i.h fs: dcache scale subdirs 2011-01-07 17:50:21 +11:00
dev-ioctl.c llseek: automatically add .llseek fop 2010-10-15 15:53:27 +02:00
expire.c fs: dcache scale subdirs 2011-01-07 17:50:21 +11:00
init.c convert get_sb_nodev() users 2010-10-29 04:16:31 -04:00
inode.c fs: do not assign default i_ino in new_inode 2010-10-25 21:26:11 -04:00
Kconfig fs/Kconfig: move autofs, autofs4 out 2009-01-22 13:15:54 +03:00
Makefile autofs4: add miscellaneous device for ioctls 2008-10-16 11:21:39 -07:00
root.c fs: dcache scale subdirs 2011-01-07 17:50:21 +11:00
symlink.c [PATCH] mark struct inode_operations const 1 2007-02-12 09:48:46 -08:00
waitq.c fs: Use rename lock and RCU for multi-step operations 2011-01-07 17:50:22 +11:00