kernel_optimize_test/fs/gfs2
Bob Peterson 6a2e275834 gfs2: use i_lock spin_lock for inode qadata
[ Upstream commit 5fcff61eea9efd1f4b60e89d2d686b5feaea100f ]

Before this patch, functions gfs2_qa_get and _put used the i_rw_mutex to
prevent simultaneous access to its i_qadata. But i_rw_mutex is now used
for many other things, including iomap_begin and end, which causes a
conflict according to lockdep. We cannot just remove the lock since
simultaneous opens (gfs2_open -> gfs2_open_common -> gfs2_qa_get) can
then stomp on each others values for i_qadata.

This patch solves the conflict by using the i_lock spin_lock in the inode
to prevent simultaneous access.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-06-09 10:20:57 +02:00
..
acl.c
acl.h
aops.c
aops.h
bmap.c gfs2: Fix filesystem block deallocation for short writes 2022-05-18 10:23:45 +02:00
bmap.h
dentry.c
dir.c
dir.h
export.c
file.c gfs2: Disable page faults during lockless buffered reads 2022-05-25 09:17:53 +02:00
gfs2.h
glock.c gfs2: Fix glock_hash_walk bugs 2021-11-18 14:04:00 +01:00
glock.h
glops.c gfs2: Fix glock recursion in freeze_go_xmote_bh 2021-09-18 13:40:25 +02:00
glops.h
incore.h
inode.c gfs2: gfs2_setattr_size error path fix 2022-04-13 21:00:54 +02:00
inode.h
Kconfig
lock_dlm.c gfs2: Don't call dlm after protocol is unmounted 2021-09-18 13:40:30 +02:00
log.c treewide: Change list_sort to use const pointers 2021-09-30 10:11:04 +02:00
log.h
lops.c treewide: Change list_sort to use const pointers 2021-09-30 10:11:04 +02:00
lops.h
main.c
Makefile
meta_io.c
meta_io.h
ops_fstype.c gfs2: init system threads before freeze lock 2021-09-15 09:50:42 +02:00
quota.c gfs2: use i_lock spin_lock for inode qadata 2022-06-09 10:20:57 +02:00
quota.h
recovery.c
recovery.h
rgrp.c gfs2: assign rgrp glock before compute_bitstructs 2022-04-27 13:53:46 +02:00
rgrp.h gfs2: gfs2_setattr_size error path fix 2022-04-13 21:00:54 +02:00
super.c gfs2: gfs2_setattr_size error path fix 2022-04-13 21:00:54 +02:00
super.h
sys.c
sys.h
trace_gfs2.h
trans.c
trans.h
util.c
util.h
xattr.c
xattr.h