linux-stable/fs/gfs2
Andreas Gruenbacher 7c6f714d88 gfs2: Fix unlinked inode cleanup
Before commit f0e56edc2e ("gfs2: Split the two kinds of glock "delete"
work"), function delete_work_func() was used to trigger the eviction of
in-memory inodes from remote as well as deleting unlinked inodes at a
later point.  These two kinds of work were then split into two kinds of
work, and the two places in the code were deferred deletion of inodes is
required accidentally ended up queuing the wrong kind of work.  This
caused unlinked inodes to be left behind, which could in the worst case
fill up filesystems and require a filesystem check to recover.

Fix that by queuing the right kind of work in try_rgrp_unlink() and
gfs2_drop_inode().

Fixes: f0e56edc2e ("gfs2: Split the two kinds of glock "delete" work")
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
2024-09-25 17:11:49 +02:00
..
acl.c gfs2: convert to ctime accessor functions 2023-07-24 10:29:59 +02:00
acl.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
aops.c gfs2: Remove gfs2_jdata_writepage() 2024-09-02 14:46:33 +02:00
aops.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
bmap.c gfs2 updates 2024-05-14 17:35:22 -07:00
bmap.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
dentry.c Revert "gfs2: Use GL_NOBLOCK flag for non-blocking lookups" 2024-02-02 17:21:44 +01:00
dir.c gfs2: Improve gfs2_consist_inode() usage 2024-04-09 18:35:57 +02:00
dir.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
export.c dlm for 6.8 2024-01-10 10:17:23 -08:00
file.c iomap: add a private argument for iomap_file_buffered_write 2024-09-03 15:01:23 +02:00
gfs2.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
glock.c gfs2: Fix unlinked inode cleanup 2024-09-25 17:11:49 +02:00
glock.h gfs2: Fix unlinked inode cleanup 2024-09-25 17:11:49 +02:00
glops.c gfs2: Initialize gl_no_formal_ino earlier 2024-09-24 19:03:33 +02:00
glops.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
incore.h gfs2: Rename GLF_VERIFY_EVICT to GLF_VERIFY_DELETE 2024-09-24 16:44:22 +02:00
inode.c gfs2: Initialize gl_no_formal_ino earlier 2024-09-24 19:03:33 +02:00
inode.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
Kconfig fs: add CONFIG_BUFFER_HEAD 2023-08-02 09:13:09 -06:00
lock_dlm.c gfs2: Invert the GLF_INITIAL flag 2024-05-29 15:34:55 +02:00
log.c gfs2: Remove __gfs2_writepage() 2024-09-02 14:46:29 +02:00
log.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
lops.c gfs2: Remove use of error flag in journal reads 2023-12-20 21:29:41 +01:00
lops.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
main.c mm, slab: remove last vestiges of SLAB_MEM_SPREAD 2024-03-12 20:32:19 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
meta_io.c gfs2: Remove gfs2_aspace_writepage() 2024-09-02 14:46:37 +02:00
meta_io.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
ops_fstype.c gfs2: fix double destroy_workqueue error 2024-08-20 16:27:22 +02:00
quota.c gfs2: Revert "check for no eligible quota changes" 2024-06-20 16:38:15 +02:00
quota.h gfs2 fixes 2023-11-07 11:54:17 -08:00
recovery.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2023-12-20 21:29:40 +01:00
recovery.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
rgrp.c gfs2: Fix unlinked inode cleanup 2024-09-25 17:11:49 +02:00
rgrp.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
super.c gfs2: Fix unlinked inode cleanup 2024-09-25 17:11:49 +02:00
super.h gfs2 fixes 2023-11-07 11:54:17 -08:00
sys.c gfs2: Use [NO_]CREATE consistently for gfs2_glock_get 2024-04-09 18:35:57 +02:00
sys.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
trace_gfs2.h gfs2: Invert the GLF_INITIAL flag 2024-05-29 15:34:55 +02:00
trans.c gfs2: Rename gfs2_withdrawn to gfs2_withdrawing_or_withdrawn 2023-12-20 21:29:40 +01:00
trans.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
util.c gfs2: Revert "Add quota_change type" 2024-06-08 02:35:09 +02:00
util.h gfs2: gfs2_freeze_unlock cleanup 2024-04-29 12:35:15 +02:00
xattr.c gfs2: Improve gfs2_consist_inode() usage 2024-04-09 18:35:57 +02:00
xattr.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00