linux/fs/gfs2
Linus Torvalds 4bb187d6f3 gfs2 changes
- Don't cache unreferenced glocks: when a glock is no longer referenced (for
   example, because the inode it protects is evicted), it is now released as
   soon as possible instead of leaving it around until memory pressure or an
   unmount forces it out.  For some workloads, this saves a lot of memory and
   speeds up unmounts significantly.
 
 - Harden gfs2_glock_hold() by making sure the caller holds a reference and
   fix a related race in checking for the liveliness of glocks between
   gdlm_bast() and gfs2_glock_cb().
 -----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCgAyFiEEJZs3krPW0xkhLMTc1b+f6wMTZToFAmqC7e8UHGFncnVlbmJh
 QHJlZGhhdC5jb20ACgkQ1b+f6wMTZTql+A/+OLEPtizpJ6k/uqk7+I63D0xYakK5
 GMWCPPf5C9fernW57cF/p0TfRRDUKqKOrb+mKkJuPBMSfEZIldKOmYQx6U/kvXIF
 6hdtRfAvVBjIs1aY+P/dliRXfzvO1HVamPsu7dx7NdTnozJz2tv/spNQ2cZV5tQD
 2t6VovUzje+U7x7Qsz3EhN/po1aNBlXlzWtvF/r7uwAtiYfXaknJkr8cjo202w0Y
 fAQ5KRZA5EiN1Fc1d6V7ehYyzv31osmaQA9Bsf7NVlpnBPG1LyibYWzFF4zg1pDo
 9JU4tcD9IpIALwYkGFFcG1qutjq0E2QKqeYgaIau94ezQnTY+q1zQQDiixyoHxHu
 2AHMIcbUzEKHib+pYWtSy5GLgeTI59+hxFe9tOERhjHGDW8fYbqQTV969S84bYTm
 +Ar04VsbToMdjYSh5I+FPLQbKwfetKjDIlKSYeZzMOfGEqpJtoU9lB8WbvP/2LcQ
 c5hJfJcV7JWW9j4YZZIZuwzZv93CstBvFubKpktMw0x9utGc6a7M+f9eADYnd3JH
 l7yb+dyjUeYeIqEbALsfnxicuoiYfVKNVxh/zdz4TJEYDH1l/CyBIirLsSAVTAJl
 ruCT13akq5e+EXGOztcIXyU39l/ajJA0v58n9gzEzMakTwpyCTwx7WcooILf1aem
 P1QRnAoud8FoAYk=
 =U72j
 -----END PGP SIGNATURE-----

Merge tag 'gfs2-for-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2

Pull gfs2 updates from Andreas Gruenbacher:

 - Don't cache unreferenced glocks: when a glock is no longer referenced
   (for example, because the inode it protects is evicted), it is now
   released as soon as possible instead of leaving it around until
   memory pressure or an unmount forces it out.

   For some workloads, this saves a lot of memory and speeds up unmounts
   significantly.

 - Harden gfs2_glock_hold() by making sure the caller holds a reference
   and fix a related race in checking for the liveliness of glocks
   between gdlm_bast() and gfs2_glock_cb().

* tag 'gfs2-for-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
  gfs2: harden gfs2_glock_hold
  gfs2: Remove the glock lru list and shrinker
  gfs2: Skip dlm unlocks earlier
  gfs2: Don't cache unreferenced glocks
  gfs2: Enable automatic glock hash table shrinking
2026-08-17 17:03:34 -07:00
..
acl.c posix_acl: make posix_acl_to_xattr() alloc the buffer 2026-01-16 10:51:12 +01:00
acl.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
aops.c gfs2 changes 2026-04-15 19:12:04 -07:00
aops.h gfs2: Don't start unnecessary transactions during log flush 2025-05-22 09:12:27 +02:00
bmap.c gfs2: convert iomap ops to ->iomap_next() 2026-07-31 12:28:51 +02:00
bmap.h gfs2: page poisoning fix 2026-05-29 11:11:40 +02:00
dentry.c gfs2_drevalidate(): use stable parent inode and name passed by caller 2025-01-27 19:25:24 -05:00
dir.c gfs2: Convert gfs2_dir_readahead to bh_submit() 2026-06-04 10:28:09 +02:00
dir.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
export.c exportfs: Remove EXPORT_OP_ASYNC_LOCK 2024-10-01 17:01:08 +02:00
file.c gfs2: page poisoning fix 2026-05-29 11:11:40 +02:00
gfs2.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 2019-06-05 17:37:12 +02:00
glock.c gfs2 changes 2026-08-17 17:03:34 -07:00
glock.h gfs2: Remove the glock lru list and shrinker 2026-07-19 15:32:42 +02:00
glops.c gfs2: inode directory consistency checks 2026-04-07 22:20:00 +02:00
glops.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
incore.h gfs2: Remove the glock lru list and shrinker 2026-07-19 15:32:42 +02:00
inode.c vfs-7.3-rc1.misc 2026-08-17 12:56:12 -07:00
inode.h gfs2: Prevent recursive memory reclaim 2025-11-26 12:57:10 +00:00
Kconfig ipv6: convert CONFIG_IPV6 to built-in only and clean up Kconfigs 2026-03-29 11:21:22 -07:00
lock_dlm.c gfs2 changes 2026-08-17 17:03:34 -07:00
log.c gfs2: prevent NULL pointer dereference during unmount 2026-04-07 22:20:00 +02:00
log.h gfs2: Move gfs2_remove_from_journal to log.c 2026-03-23 20:55:28 +01:00
lops.c gfs2: Get rid of gfs2_log_[un]lock helpers 2026-03-23 20:55:28 +01:00
lops.h gfs2: Initialize bio->bi_opf early 2026-01-26 14:28:17 +01:00
main.c gfs2: Remove the glock lru list and shrinker 2026-07-19 15:32:42 +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
meta_io.c buffer: Change calling convention for end_buffer_read_sync() 2026-06-04 10:28:10 +02:00
meta_io.h gfs2: Move gfs2_remove_from_journal to log.c 2026-03-23 20:55:28 +01:00
ops_fstype.c gfs2: Remove the glock lru list and shrinker 2026-07-19 15:32:42 +02:00
quota.c lockref: tidy up dead count handling 2026-07-31 10:09:12 +02:00
quota.h gfs2: reorder capability check last 2024-12-09 10:44:35 +01:00
recovery.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
recovery.h gfs2: Simplify gfs2_log_pointers_init 2025-05-22 09:12:27 +02:00
rgrp.c gfs2 changes 2026-04-15 19:12:04 -07:00
rgrp.h gfs2: No longer use 'extern' in function declarations 2023-11-06 01:51:26 +01:00
super.c gfs2: Remove the glock lru list and shrinker 2026-07-19 15:32:42 +02:00
super.h gfs2: No longer thaw filesystems during a withdraw 2025-11-26 23:52:28 +00:00
sys.c gfs2: Skip dlm unlocks earlier 2026-07-19 15:19:21 +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: Remove the glock lru list and shrinker 2026-07-19 15:32:42 +02:00
trans.c gfs2: bufdata allocation race 2026-03-30 12:01:52 +02:00
trans.h gfs2: Move gfs2_trans_add_databufs 2025-05-22 09:12:27 +02:00
util.c gfs2: drain ail under sd_log_flush_lock 2026-04-07 22:19:22 +02:00
util.h Revert "gfs2: don't stop reads while withdraw in progress" 2025-11-26 23:52:26 +00:00
xattr.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
xattr.h gfs2: Move GIF_ALLOC_FAILED check out of gfs2_ea_dealloc 2025-04-21 18:20:36 +02:00