diff options
author | Nick Piggin <npiggin@suse.de> | 2010-01-29 18:38:23 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2010-04-27 11:32:34 -0400 |
commit | a9865fc4ed12399c21bc7393d8f12431c563d18d (patch) | |
tree | 3b8679a7b2fb057a12dc708f3de0a453e603607b /arch | |
parent | 0ae6d894c8a82fc64d7203a5d342304005ba2aae (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