1
0
Fork 0
alistair23-linux/fs/ntfs
Thomas Gleixner f1e67e355c fs/buffer: Make BH_Uptodate_Lock bit_spin_lock a regular spinlock_t
Bit spinlocks are problematic if PREEMPT_RT is enabled, because they
disable preemption, which is undesired for latency reasons and breaks when
regular spinlocks are taken within the bit_spinlock locked region because
regular spinlocks are converted to 'sleeping spinlocks' on RT.

PREEMPT_RT replaced the bit spinlocks with regular spinlocks to avoid this
problem. The replacement was done conditionaly at compile time, but
Christoph requested to do an unconditional conversion.

Jan suggested to move the spinlock into a existing padding hole which
avoids a size increase of struct buffer_head on production kernels.

As a benefit the lock gains lockdep coverage.

[ bigeasy: Remove the wrapper and use always spinlock_t and move it into
           the padding hole ]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Jan Kara <jack@suse.cz>
Cc: Christoph Hellwig <hch@infradead.org>
Link: https://lkml.kernel.org/r/20191118132824.rclhrbujqh4b4g4d@linutronix.de
2020-03-28 13:21:08 +01:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
aops.c fs/buffer: Make BH_Uptodate_Lock bit_spin_lock a regular spinlock_t 2020-03-28 13:21:08 +01:00
aops.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
attrib.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
attrib.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
bitmap.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
bitmap.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
collate.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
collate.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
compress.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
debug.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
debug.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
dir.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
dir.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
endian.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
file.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
index.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
index.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
inode.c utimes: Clamp the timestamps in notify_change() 2019-12-08 19:10:50 -05:00
inode.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
layout.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
lcnalloc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
lcnalloc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
logfile.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
logfile.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
malloc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
mft.c ntfs: remove (un)?likely() from IS_ERR() conditions 2019-09-26 10:10:44 -07:00
mft.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
mst.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
namei.c ntfs: remove (un)?likely() from IS_ERR() conditions 2019-09-26 10:10:44 -07:00
ntfs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
quota.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
quota.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
runlist.c ntfs: remove (un)?likely() from IS_ERR() conditions 2019-09-26 10:10:44 -07:00
runlist.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
super.c ntfs: remove (un)?likely() from IS_ERR() conditions 2019-09-26 10:10:44 -07:00
sysctl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
sysctl.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
time.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
types.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
unistr.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
upcase.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 97 2019-05-24 17:37:53 +02:00
usnjrnl.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
usnjrnl.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00
volume.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 2019-05-24 17:37:53 +02:00