949854d024
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> |
||
---|---|---|
.. | ||
adis16255 | ||
asus_oled | ||
ath6kl | ||
autofs | ||
batman-adv | ||
bcm | ||
brcm80211 | ||
comedi | ||
cpia | ||
crystalhd | ||
cx25821 | ||
cxt1e1 | ||
dt3155v4l | ||
easycap | ||
echo | ||
et131x | ||
frontier | ||
ft1000 | ||
go7007 | ||
hv | ||
iio | ||
intel_sst | ||
keucr | ||
line6 | ||
lirc | ||
memrar | ||
msm | ||
octeon | ||
olpc_dcon | ||
panel | ||
phison | ||
pohmelfs | ||
quatech_usb2 | ||
quickstart | ||
rt2860 | ||
rt2870 | ||
rtl8187se | ||
rtl8192e | ||
rtl8192u | ||
rtl8712 | ||
samsung-laptop | ||
sbe-2t3e3 | ||
serqt_usb2 | ||
slicoss | ||
sm7xx | ||
smbfs | ||
solo6x10 | ||
speakup | ||
spectra | ||
stradis | ||
ti-st | ||
tidspbridge | ||
tm6000 | ||
udlfb | ||
usbip | ||
vme | ||
vt6655 | ||
vt6656 | ||
westbridge | ||
winbond | ||
wlags49_h2 | ||
wlags49_h25 | ||
wlan-ng | ||
xgifb | ||
zram | ||
Kconfig | ||
Makefile | ||
staging.c |