linux-stable/fs/gfs2
Andreas Gruenbacher 296abc0d91 gfs2: No short reads or writes upon glock contention
Commit 00bfe02f47 ("gfs2: Fix mmap + page fault deadlocks for buffered
I/O") changed gfs2_file_read_iter() and gfs2_file_buffered_write() to
allow dropping the inode glock while faulting in user buffers.  When the
lock was dropped, a short result was returned to indicate that the
operation was interrupted.

As pointed out by Linus (see the link below), this behavior is broken
and the operations should always re-acquire the inode glock and resume
the operation instead.

Link: https://lore.kernel.org/lkml/CAHk-=whaz-g_nOOoo8RRiWNjnv2R+h6_xk2F1J4TuSRxk1MtLw@mail.gmail.com/
Fixes: 00bfe02f47 ("gfs2: Fix mmap + page fault deadlocks for buffered I/O")
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
2022-04-28 15:14:48 +02:00
..
acl.c
acl.h
aops.c fs: Convert __set_page_dirty_buffers to block_dirty_folio 2022-03-16 13:37:04 -04:00
aops.h
bmap.c gfs2: Remove return value for gfs2_indirect_init 2022-03-03 15:59:21 +01:00
bmap.h
dentry.c
dir.c
dir.h
export.c
file.c gfs2: No short reads or writes upon glock contention 2022-04-28 15:14:48 +02:00
gfs2.h
glock.c gfs2: Initialize gh_error in gfs2_glock_nq 2022-02-15 15:01:40 +01:00
glock.h gfs2: fix GL_SKIP node_scope problems 2021-10-25 08:42:19 +02:00
glops.c gfs2: dump inode object for iopen glocks 2022-01-11 16:52:44 +01:00
glops.h
incore.h gfs2: remove RDF_UPTODATE flag 2021-10-25 08:42:19 +02:00
inode.c gfs2: Switch lock order of inode and iopen glock 2022-02-15 15:01:40 +01:00
inode.h
Kconfig
lock_dlm.c gfs2: Expect -EBUSY after canceling dlm locking requests 2022-02-15 15:01:40 +01:00
log.c
log.h
lops.c block: remove the per-bio/request write hint 2022-03-07 12:45:57 -07:00
lops.h
main.c
Makefile
meta_io.c Filesystem folio changes for 5.18 2022-03-22 18:26:56 -07:00
meta_io.h
ops_fstype.c block: pass a block_device and opf to bio_alloc 2022-02-02 07:49:59 -07:00
quota.c
quota.h
recovery.c
recovery.h
rgrp.c gfs2: Make sure FITRIM minlen is rounded up to fs block size 2022-03-31 20:35:38 +02:00
rgrp.h gfs2: gfs2_setattr_size error path fix 2022-02-15 15:01:40 +01:00
super.c gfs2 fixes 2022-03-31 15:57:50 -07:00
super.h
sys.c block: remove genhd.h 2022-02-02 07:49:59 -07:00
sys.h
trace_gfs2.h gfs2: Remove 'first' trace_gfs2_promote argument 2021-10-25 08:42:19 +02:00
trans.c
trans.h
util.c gfs2: dump glocks from gfs2_consist_OBJ_i 2021-10-25 08:42:18 +02:00
util.h
xattr.c
xattr.h