linux/drivers/staging
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
..
adis16255
asus_oled
ath6kl
autofs
batman-adv Staging: batman-adv: ensure that eth_type_trans gets linear memory 2010-11-29 10:53:14 -08:00
bcm
brcm80211 staging: brcm80211: updated maintainers contact information 2010-11-29 10:53:14 -08:00
comedi
cpia
crystalhd
cx25821 [media] Don't export format_by_forcc on two different drivers 2010-12-02 01:59:10 -02:00
cxt1e1
dt3155v4l
easycap staging: easycap needs smp_lock.h, fixes build error 2010-11-29 10:53:14 -08:00
echo
et131x
frontier
ft1000
go7007 [media] v4l: Remove module_name argument to the v4l2_i2c_new_subdev* functions 2010-11-22 11:56:26 -02:00
hv
iio
intel_sst Merge branch 'master' into work 2010-11-29 10:44:22 -08:00
keucr
line6
lirc
memrar
msm
octeon
olpc_dcon
panel
phison
pohmelfs fs: Use rename lock and RCU for multi-step operations 2011-01-07 17:50:22 +11:00
quatech_usb2
quickstart
rt2860 Staging: rt2870: Add USB ID for Buffalo Airstation WLI-UC-GN 2010-11-29 11:48:29 -08:00
rt2870
rtl8187se
rtl8192e
rtl8192u
rtl8712 Merge branch 'master' into work 2010-11-29 10:44:22 -08:00
samsung-laptop
sbe-2t3e3
serqt_usb2
slicoss
sm7xx
smbfs fs: dcache scale subdirs 2011-01-07 17:50:21 +11:00
solo6x10
speakup Merge branch 'master' into work 2010-11-29 10:44:22 -08:00
spectra
stradis
ti-st
tidspbridge
tm6000 [media] v4l: Remove module_name argument to the v4l2_i2c_new_subdev* functions 2010-11-22 11:56:26 -02:00
udlfb
usbip
vme
vt6655
vt6656
westbridge
winbond staging: fix winbond build, needs delay.h 2010-11-19 10:13:56 -08:00
wlags49_h2
wlags49_h25
wlan-ng
xgifb
zram Revert "Staging: zram: work around oops due to startup ordering snafu" 2010-12-30 12:07:22 -08:00
Kconfig
Makefile
staging.c