linux/fs/gfs2
Steven Whitehouse 97cc1025b1 GFS2: Kill two daemons with one patch
This patch removes the two daemons, gfs2_scand and gfs2_glockd
and replaces them with a shrinker which is called from the VM.

The net result is that GFS2 responds better when there is memory
pressure, since it shrinks the glock cache at the same rate
as the VFS shrinks the dcache and icache. There are no longer
any time based criteria for shrinking glocks, they are kept
until such time as the VM asks for more memory and then we
demote just as many glocks as required.

There are potential future changes to this code, including the
possibility of sorting the glocks which are to be written back
into inode number order, to get a better I/O ordering. It would
be very useful to have an elevator based workqueue implementation
for this, as that would automatically deal with the read I/O cases
at the same time.

This patch is my answer to Andrew Morton's remark, made during
the initial review of GFS2, asking why GFS2 needs so many kernel
threads, the answer being that it doesn't :-) This patch is a
net loss of about 200 lines of code.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2009-01-05 07:39:09 +00:00
..
locking/dlm dlm: allow multiple lockspace creates 2008-08-28 11:49:15 -05:00
acl.c GFS2: Move di_eattr into "proper" inode 2009-01-05 07:38:57 +00:00
acl.h [GFS2] Remove gfs2_check_acl() 2006-11-30 10:37:32 -05:00
bmap.c GFS2: Banish struct gfs2_dinode_host 2009-01-05 07:38:59 +00:00
bmap.h [GFS2] Remove function gfs2_get_block 2008-01-25 08:08:25 +00:00
dir.c GFS2: Banish struct gfs2_dinode_host 2009-01-05 07:38:59 +00:00
dir.h [GFS2] Clean up inode number handling 2007-07-09 08:22:24 +01:00
eaops.c [GFS2] Remove unrequired code 2008-01-25 08:08:13 +00:00
eaops.h [GFS2] mark struct *_operations const 2007-10-10 08:55:03 +01:00
eattr.c GFS2: Banish struct gfs2_dinode_host 2009-01-05 07:38:59 +00:00
eattr.h [GFS2] gfs2 misc endianness annotations 2006-11-30 10:33:46 -05:00
gfs2.h [GFS2] Remove remote lock dropping code 2008-06-27 09:39:44 +01:00
glock.c GFS2: Kill two daemons with one patch 2009-01-05 07:39:09 +00:00
glock.h GFS2: Kill two daemons with one patch 2009-01-05 07:39:09 +00:00
glops.c GFS2: Kill two daemons with one patch 2009-01-05 07:39:09 +00:00
glops.h [GFS2] Make headers compile on their own 2006-09-05 10:39:21 -04:00
incore.h GFS2: Kill two daemons with one patch 2009-01-05 07:39:09 +00:00
inode.c GFS2: Kill two daemons with one patch 2009-01-05 07:39:09 +00:00
inode.h GFS2: Banish struct gfs2_dinode_host 2009-01-05 07:38:59 +00:00
Kconfig [GFS2] No lock_nolock 2008-06-27 09:39:28 +01:00
locking.c [GFS2] Fix ordering of args for list_add 2008-06-27 09:39:34 +01:00
log.c GFS2: Support for I/O barriers 2008-09-26 10:23:22 +01:00
log.h [GFS2] trivial sparse lock annotations 2008-06-27 09:39:31 +01:00
lops.c [GFS2] Plug an unlikely leak 2008-03-31 10:40:05 +01:00
lops.h [GFS2] Only do lo_incore_commit once 2008-03-31 10:39:54 +01:00
main.c GFS2: Kill two daemons with one patch 2009-01-05 07:39:09 +00:00
Makefile GFS2: Kill two daemons with one patch 2009-01-05 07:39:09 +00:00
meta_io.c [GFS2] Clean up the glock core 2008-06-27 09:39:22 +01:00
meta_io.h [GFS2] Clean up the glock core 2008-06-27 09:39:22 +01:00
mount.c GFS2: Kill two daemons with one patch 2009-01-05 07:39:09 +00:00
mount.h [GFS2] Make headers compile on their own 2006-09-05 10:39:21 -04:00
ops_address.c GFS2: Move i_size from gfs2_dinode_host and rename it to i_disksize 2009-01-05 07:38:58 +00:00
ops_address.h [GFS2] Remove function gfs2_get_block 2008-01-25 08:08:25 +00:00
ops_dentry.c GFS2: Rationalise header files 2009-01-05 07:38:48 +00:00
ops_export.c GFS2: Banish struct gfs2_dinode_host 2009-01-05 07:38:59 +00:00
ops_file.c GFS2: Banish struct gfs2_dinode_host 2009-01-05 07:38:59 +00:00
ops_fstype.c GFS2: Kill two daemons with one patch 2009-01-05 07:39:09 +00:00
ops_inode.c GFS2: Banish struct gfs2_dinode_host 2009-01-05 07:38:59 +00:00
ops_super.c GFS2: Kill two daemons with one patch 2009-01-05 07:39:09 +00:00
quota.c GFS2: Fix "truncate in progress" hang 2009-01-05 07:39:06 +00:00
quota.h GFS2: Move gfs2_recoverd into recovery.c 2009-01-05 07:39:07 +00:00
recovery.c GFS2: Move gfs2_recoverd into recovery.c 2009-01-05 07:39:07 +00:00
recovery.h GFS2: Move gfs2_recoverd into recovery.c 2009-01-05 07:39:07 +00:00
rgrp.c GFS2: Banish struct gfs2_rgrpd_host 2009-01-05 07:39:03 +00:00
rgrp.h [GFS2] Add extent allocation to block allocator 2008-03-31 10:40:47 +01:00
super.c GFS2: Banish struct gfs2_rgrpd_host 2009-01-05 07:39:03 +00:00
super.h GFS2: Rationalise header files 2009-01-05 07:38:48 +00:00
sys.c GFS2: Kill two daemons with one patch 2009-01-05 07:39:09 +00:00
sys.h [GFS2] Make headers compile on their own 2006-09-05 10:39:21 -04:00
trans.c [GFS2] Update gfs2_trans_add_unrevoke to accept extents 2008-03-31 10:40:42 +01:00
trans.h [GFS2] Update gfs2_trans_add_unrevoke to accept extents 2008-03-31 10:40:42 +01:00
util.c GFS2: Clean up & move gfs2_quotad 2009-01-05 07:39:05 +00:00
util.h GFS2: Clean up & move gfs2_quotad 2009-01-05 07:39:05 +00:00