OrangePi_CM5/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
..
Kconfig
…
Makefile
…
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
…
glops.h
…
incore.h
…
inode.c gfs2: gfs2_setattr_size error path fix 2022-04-13 21:00:54 +02:00
inode.h
…
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
…
meta_io.c
…
meta_io.h
…
ops_fstype.c
…
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
…