aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorNick Piggin <npiggin@suse.de>2010-01-29 18:38:23 -0500
committerThomas Gleixner <tglx@linutronix.de>2010-04-27 11:32:34 -0400
commita9865fc4ed12399c21bc7393d8f12431c563d18d (patch)
tree3b8679a7b2fb057a12dc708f3de0a453e603607b /arch
parent0ae6d894c8a82fc64d7203a5d342304005ba2aae (diff)
fs-dcache_lock-multi-step
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. Insert operations are not serialised. Delete operations 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. XXX: hmm, we could of course just take the rename lock if there is any worry about livelock. Most of these are slow paths. Signed-off-by: Nick Piggin <npiggin@suse.de> Signed-off-by: John Stultz <johnstul@us.ibm.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch')
0 files changed, 0 insertions, 0 deletions