linux/fs/gfs2
Andreas Gruenbacher 725d0e9d46 gfs2: Add per-reservation reserved block accounting
Add a rs_reserved field to struct gfs2_blkreserv to keep track of the number of
blocks reserved by this particular reservation, and a rd_reserved field to
struct gfs2_rgrpd to keep track of the total number of reserved blocks in the
resource group.  Those blocks are exclusively reserved, as opposed to the
rs_requested / rd_requested blocks which are tracked in the reservation tree
(rd_rstree) and which can be stolen if necessary.

When making a reservation with gfs2_inplace_reserve, rs_reserved is set to
somewhere between ap->min_target and ap->target depending on the number of free
blocks in the resource group.  When allocating blocks with gfs2_alloc_blocks,
rs_reserved is decremented accordingly.  Eventually, any reserved but not
consumed blocks are returned to the resource group by gfs2_inplace_release.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
2021-02-17 19:30:26 +01:00
..
acl.c
acl.h
aops.c gfs2: Fix case in which ail writes are done to jdata holes 2020-11-12 18:55:20 +01:00
aops.h
bmap.c gfs2: Only use struct gfs2_rbm for bitmap manipulations 2021-01-18 16:56:36 +01:00
bmap.h gfs2: use iomap for buffered I/O in ordered and writeback mode 2020-10-14 23:54:42 +02:00
dentry.c
dir.c
dir.h
export.c gfs2: Minor gfs2_lookup_by_inum cleanup 2020-06-05 20:19:21 +02:00
file.c gfs2: Add per-reservation reserved block accounting 2021-02-17 19:30:26 +01:00
gfs2.h
glock.c Revert "GFS2: Prevent delete work from occurring on glocks used for create" 2020-12-01 00:25:21 +01:00
glock.h Merge branch 'gfs2-iopen' into for-next 2020-06-05 21:25:36 +02:00
glops.c gfs2: Don't freeze the file system during unmount 2020-11-25 18:12:08 +01:00
glops.h gfs2: Split up gfs2_meta_sync into inode and rgrp versions 2020-10-29 22:16:46 +01:00
incore.h gfs2: Add per-reservation reserved block accounting 2021-02-17 19:30:26 +01:00
inode.c Revert "GFS2: Prevent delete work from occurring on glocks used for create" 2020-12-01 00:25:21 +01:00
inode.h gfs2: Make inode operations static 2020-12-01 00:25:21 +01:00
Kconfig
lock_dlm.c
log.c gfs2: Fix case in which ail writes are done to jdata holes 2020-11-12 18:55:20 +01:00
log.h gfs2: Wipe jdata and ail1 in gfs2_journal_wipe, formerly gfs2_meta_wipe 2020-10-15 14:29:03 +02:00
lops.c gfs2: Add per-reservation reserved block accounting 2021-02-17 19:30:26 +01:00
lops.h gfs2: Split up gfs2_meta_sync into inode and rgrp versions 2020-10-29 22:16:46 +01:00
main.c gfs2: eliminate GIF_ORDERED in favor of list_empty 2020-07-03 12:05:34 +02:00
Makefile
meta_io.c gfs2: Wipe jdata and ail1 in gfs2_journal_wipe, formerly gfs2_meta_wipe 2020-10-15 14:29:03 +02:00
meta_io.h gfs2: Wipe jdata and ail1 in gfs2_journal_wipe, formerly gfs2_meta_wipe 2020-10-15 14:29:03 +02:00
ops_fstype.c gfs2: don't initialize statfs_change inodes in spectator mode 2020-10-29 22:16:46 +01:00
quota.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
quota.h
recovery.c gfs2: Split up gfs2_meta_sync into inode and rgrp versions 2020-10-29 22:16:46 +01:00
recovery.h
rgrp.c gfs2: Add per-reservation reserved block accounting 2021-02-17 19:30:26 +01:00
rgrp.h gfs2: Only pass reservation down to gfs2_rbm_find 2021-02-17 19:26:05 +01:00
super.c gfs2: Remove sb_start_write from gfs2_statfs_sync 2020-12-03 17:04:24 +01:00
super.h gfs2: lookup local statfs inodes prior to journal recovery 2020-10-23 15:47:14 +02:00
sys.c gfs2: use-after-free in sysfs deregistration 2020-10-14 23:54:43 +02:00
sys.h
trace_gfs2.h gfs2: Add per-reservation reserved block accounting 2021-02-17 19:30:26 +01:00
trans.c gfs2: add some much needed cleanup for log flushes that fail 2020-08-24 13:54:07 +02:00
trans.h gfs2: Only use struct gfs2_rbm for bitmap manipulations 2021-01-18 16:56:36 +01:00
util.c gfs2: in signal_our_withdraw wait for unfreeze of _this_ fs only 2020-12-03 17:04:41 +01:00
util.h gfs2: remove trailing semicolons from macro definitions 2020-12-01 00:25:21 +01:00
xattr.c
xattr.h