linux/fs/gfs2
Glauber Costa 55f841ce93 super: fix calculation of shrinkable objects for small numbers
The sysctl knob sysctl_vfs_cache_pressure is used to determine which
percentage of the shrinkable objects in our cache we should actively try
to shrink.

It works great in situations in which we have many objects (at least more
than 100), because the aproximation errors will be negligible.  But if
this is not the case, specially when total_objects < 100, we may end up
concluding that we have no objects at all (total / 100 = 0, if total <
100).

This is certainly not the biggest killer in the world, but may matter in
very low kernel memory situations.

Signed-off-by: Glauber Costa <glommer@openvz.org>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Acked-by: Mel Gorman <mgorman@suse.de>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: "Theodore Ts'o" <tytso@mit.edu>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Cc: Arve Hjønnevåg <arve@android.com>
Cc: Carlos Maiolino <cmaiolino@redhat.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Chuck Lever <chuck.lever@oracle.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: David Rientjes <rientjes@google.com>
Cc: Gleb Natapov <gleb@redhat.com>
Cc: Greg Thelen <gthelen@google.com>
Cc: J. Bruce Fields <bfields@redhat.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Jerome Glisse <jglisse@redhat.com>
Cc: John Stultz <john.stultz@linaro.org>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Kent Overstreet <koverstreet@google.com>
Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Steven Whitehouse <swhiteho@redhat.com>
Cc: Thomas Hellstrom <thellstrom@vmware.com>
Cc: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2013-09-10 18:56:29 -04:00
..
acl.c gfs2: Use uid_eq and gid_eq where appropriate 2013-02-13 06:15:10 -08:00
acl.h fs: take the ACL checks to common code 2011-07-25 14:30:23 -04:00
aops.c GFS2: dirty inode correctly in gfs2_write_end 2013-09-05 09:04:24 +01:00
bmap.c GFS2: Reserve journal space for quota change in do_grow 2013-06-27 18:16:27 +01:00
bmap.h GFS2: New truncate sequence 2010-09-20 11:18:16 +01:00
dentry.c gfs2: use check_submounts_and_drop() 2013-09-05 16:23:51 -04:00
dir.c treewide: Add __GFP_NOWARN to k.alloc calls with v.alloc fallbacks 2013-08-20 13:06:40 +02:00
dir.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw 2013-07-02 09:41:18 -07:00
export.c [readdir] constify ->actor 2013-06-29 12:57:05 +04:00
file.c GFS2: dirty inode correctly in gfs2_write_end 2013-09-05 09:04:24 +01:00
gfs2.h
glock.c super: fix calculation of shrinkable objects for small numbers 2013-09-10 18:56:29 -04:00
glock.h GFS2: Remove gfs2_refresh_inode from inode creation path 2013-04-08 08:40:17 +01:00
glops.c GFS2: don't overrun reserved revokes 2013-08-19 09:33:16 +01:00
glops.h GFS2: Fix AIL flush issue during fsync 2011-10-21 12:39:41 +01:00
incore.h GFS2: Add origin indicator to glock callbacks 2013-04-10 10:26:55 +01:00
inode.c GFS2: Check for glock already held in gfs2_getxattr 2013-08-19 09:33:57 +01:00
inode.h GFS2: Add atomic_open support 2013-06-14 11:17:15 +01:00
Kconfig Finally eradicate CONFIG_HOTPLUG 2013-06-03 14:20:18 -07:00
lock_dlm.c GFS2: use memchr_inv 2013-04-04 09:52:50 +01:00
log.c GFS2: aggressively issue revokes in gfs2_log_flush 2013-06-19 09:41:59 +01:00
log.h GFS2: aggressively issue revokes in gfs2_log_flush 2013-06-19 09:41:59 +01:00
lops.c GFS2: Move gfs2_sync_meta to lops.c 2013-08-19 17:26:32 +01:00
lops.h GFS2: Eliminate gfs2_rg_lops 2013-06-05 09:50:40 +01:00
main.c GFS2: WQ_NON_REENTRANT is meaningless and going away 2013-08-19 09:33:01 +01:00
Makefile GFS2: Rename ops_inode.c to inode.c 2011-05-10 13:12:49 +01:00
meta_io.c GFS2: Move gfs2_sync_meta to lops.c 2013-08-19 17:26:32 +01:00
meta_io.h GFS2: Move gfs2_sync_meta to lops.c 2013-08-19 17:26:32 +01:00
ops_fstype.c GFS2: Don't flag consistency error if first mounter is a spectator 2013-09-05 09:03:57 +01:00
quota.c super: fix calculation of shrinkable objects for small numbers 2013-09-10 18:56:29 -04:00
quota.h gfs2: Use kuid_t and kgid_t types where appropriate. 2013-02-13 06:15:09 -08:00
recovery.c GFS2: fail mount if journal recovery fails 2012-01-11 09:24:48 +00:00
recovery.h gfs2: use workqueue instead of slow-work 2010-07-23 13:14:25 +02:00
rgrp.c GFS2: Fix fstrim boundary conditions 2013-06-19 21:41:26 +01:00
rgrp.h GFS2: Remove vestigial parameter ip from function rs_deltree 2013-04-08 08:41:04 +01:00
super.c GFS2: Don't cache iopen glocks 2013-06-03 16:40:22 +01:00
super.h GFS2: Clean up freeze code 2013-01-29 10:29:05 +00:00
sys.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
sys.h GFS2: dlm based recovery coordination 2012-01-11 09:23:05 +00:00
trace_gfs2.h GFS2: Add origin indicator to glock demote tracing 2013-04-10 10:32:05 +01:00
trans.c GFS2: fix warning message 2013-06-19 21:29:19 +01:00
trans.h GFS2: Split gfs2_trans_add_bh() into two 2013-01-29 10:28:04 +00:00
util.c GFS2: Reinstate withdraw ack system 2013-02-13 12:21:40 +00:00
util.h GFS2: Fix error handling when reading an invalid block from the journal 2012-06-06 11:27:49 +01:00
xattr.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2013-02-25 16:00:49 -08:00
xattr.h sanitize xattr handler prototypes 2009-12-16 12:16:49 -05:00