linux/drivers/staging
Nick Piggin 2a4419b5b2 fs: fs_struct rwlock to spinlock
fs: fs_struct rwlock to spinlock

struct fs_struct.lock is an rwlock with the read-side used to protect root and
pwd members while taking references to them. Taking a reference to a path
typically requires just 2 atomic ops, so the critical section is very small.
Parallel read-side operations would have cacheline contention on the lock, the
dentry, and the vfsmount cachelines, so the rwlock is unlikely to ever give a
real parallelism increase.

Replace it with a spinlock to avoid one or two atomic operations in typical
path lookup fastpath.

Signed-off-by: Nick Piggin <npiggin@kernel.dk>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-08-18 08:35:46 -04:00
..
adis16255
asus_oled
batman-adv Staging: Merge staging-next into Linus's tree 2010-08-05 14:18:03 -07:00
comedi Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 2010-08-06 12:25:06 -07:00
crystalhd
cx25821 Staging: Merge staging-next into Linus's tree 2010-08-05 14:18:03 -07:00
cxt1e1
dream
dt3155v4l
easycap staging: Pushdown bkl to easycap ioctl handlers 2010-08-09 03:28:40 +02:00
echo
et131x
frontier
go7007
hv Merge branch 'for-2.6.36' of git://git.kernel.dk/linux-2.6-block 2010-08-10 15:22:42 -07:00
iio staging: iio: ring_sw Fix pointer arithmetic for 64bit arches by using phys_addr_t 2010-08-02 17:06:04 -07:00
line6 Staging: line6: needs to select SND_PCM 2010-07-28 08:20:55 -07:00
lirc V4L/DVB: STAGING: remove lirc_ene0100 driver 2010-08-08 23:43:00 -03:00
memrar Staging: Merge staging-next into Linus's tree 2010-08-05 14:18:03 -07:00
mrst-touchscreen
msm staging: msm: remove video drivers for obsolete platforms 2010-07-26 15:39:31 -07:00
octeon Staging: Merge staging-next into Linus's tree 2010-08-05 14:18:03 -07:00
otus Staging: comedi : fix brace coding style issue in wwrap.c 2010-08-02 18:27:42 -07:00
panel staging: panel: fix error path 2010-08-02 18:23:45 -07:00
phison
pohmelfs fs: fs_struct rwlock to spinlock 2010-08-18 08:35:46 -04:00
quatech_usb2 Staging: quatech_usb2: remove unused qt2_box_flush function 2010-08-02 18:25:27 -07:00
quickstart Staging: quickstart: depends on INPUT 2010-08-02 18:12:46 -07:00
rt2860 Staging: Merge staging-next into Linus's tree 2010-08-05 14:18:03 -07:00
rt2870
rtl8187se param: remove unnecessary writable charp 2010-08-11 23:04:27 +09:30
rtl8192e param: remove unnecessary writable charp 2010-08-11 23:04:27 +09:30
rtl8192su param: remove unnecessary writable charp 2010-08-11 23:04:27 +09:30
rtl8192u Staging: Merge staging-next into Linus's tree 2010-08-05 14:18:03 -07:00
samsung-laptop
sep Staging: fix typos concerning "address" 2010-07-22 14:43:10 -07:00
serqt_usb2
slicoss Staging: slicoss: Remove net_device_stats from the driver's private 2010-08-02 18:25:26 -07:00
sm7xx staging: sm7xx: Fixup of the section mismatch 2010-07-22 14:32:59 -07:00
solo6x10
spectra
ti-st Staging: ti-st: update TODO 2010-08-02 18:28:40 -07:00
tidspbridge staging: ti dspbridge: avoid errors if stream id is zero 2010-08-02 17:11:03 -07:00
tm6000 V4L/DVB: tm6000-input: Make checkpatch.pl happy 2010-08-02 15:29:35 -03:00
udlfb
usbip USB: convert usb_hcd bitfields into atomic flags 2010-08-10 14:35:37 -07:00
vme
vt6655 Staging: vt6655: replace BOOL with in kernel bool 2010-08-02 18:17:57 -07:00
vt6656 staging: vt6656: removed NTSTATUS definition 2010-08-02 18:19:04 -07:00
winbond Staging: Merge staging-next into Linus's tree 2010-08-05 14:18:03 -07:00
wlags49_h2 Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 2010-08-06 12:25:06 -07:00
wlags49_h25
wlan-ng Staging: wlan-ng: Update prism2_set_tx_power() to use mBm 2010-08-05 14:18:29 -07:00
xgifb
zram
Kconfig Staging: Merge staging-next into Linus's tree 2010-08-05 14:18:03 -07:00
Makefile Staging: Merge staging-next into Linus's tree 2010-08-05 14:18:03 -07:00
staging.c