OpenCloudOS-Kernel/fs/gfs2
Steven Whitehouse ba1ddcb6ca GFS2: Cache last hash bucket for glock seq_files
For the glocks and glstats seq_files, which are exposed via debugfs
we should cache the most recent hash bucket, along with the offset
into that bucket. This allows us to restart from that point, rather
than having to begin at the beginning each time.

This is an idea from Eric Dumazet, however I've slightly extended it
so that if the position from which we are due to start is at any
point beyond the last cached point, we start from the last cached
point, plus whatever is the appropriate offset. I don't really expect
people to be lseeking around these files, but if they did so with only
positive offsets, then we'd still get some of the benefit of using a
cached offset.

With my simple test of around 200k entries in the file, I'm seeing
an approx 10x speed up.

Cc: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2012-06-08 11:16:22 +01:00
..
Kconfig GFS2: use depends instead of select in kconfig 2012-03-26 09:18:02 +01:00
Makefile GFS2: Rename ops_inode.c to inode.c 2011-05-10 13:12:49 +01:00
acl.c GFS2: Fix sgid propagation when using ACLs 2012-05-04 14:33:06 +01:00
acl.h fs: take the ACL checks to common code 2011-07-25 14:30:23 -04:00
aops.c GFS2: Fold quota data into the reservations struct 2012-06-06 11:20:22 +01:00
bmap.c GFS2: Fold quota data into the reservations struct 2012-06-06 11:20:22 +01:00
bmap.h GFS2: New truncate sequence 2010-09-20 11:18:16 +01:00
dentry.c gfs2: fix d_revalidate oopsen on NFS exports 2011-03-10 03:44:48 -05:00
dir.c GFS2: Fold quota data into the reservations struct 2012-06-06 11:20:22 +01:00
dir.h GFS2: Add readahead to sequential directory traversal 2011-11-08 09:52:12 +00:00
export.c ->encode_fh() API change 2012-05-29 23:28:33 -04:00
file.c GFS2: Add "top dir" flag support 2012-06-06 11:27:36 +01:00
gfs2.h [GFS2] Remove remote lock dropping code 2008-06-27 09:39:44 +01:00
glock.c GFS2: Cache last hash bucket for glock seq_files 2012-06-08 11:16:22 +01:00
glock.h GFS2: dlm based recovery coordination 2012-01-11 09:23:05 +00:00
glops.c GFS2: Remove redundant metadata block type check 2012-05-08 16:18:55 +01:00
glops.h GFS2: Fix AIL flush issue during fsync 2011-10-21 12:39:41 +01:00
incore.h GFS2: Fold quota data into the reservations struct 2012-06-06 11:20:22 +01:00
inode.c GFS2: Fold quota data into the reservations struct 2012-06-06 11:20:22 +01:00
inode.h GFS2: Remove unused argument from gfs2_internal_read 2012-04-24 16:44:37 +01:00
lock_dlm.c dlm: fixes for nodir mode 2012-05-02 14:15:27 -05:00
log.c GFS2: eliminate log elements and simplify 2012-05-02 09:14:36 +01:00
log.h GFS2: Clean up log write code path 2012-04-24 16:44:34 +01:00
lops.c GFS2: Fix error handling when reading an invalid block from the journal 2012-06-06 11:27:49 +01:00
lops.h GFS2: eliminate log elements and simplify 2012-05-02 09:14:36 +01:00
main.c GFS2: Fold quota data into the reservations struct 2012-06-06 11:20:22 +01:00
meta_io.c GFS2: Eliminate unused "new" parameter to gfs2_meta_indirect_buffer 2012-05-11 10:19:23 +01:00
meta_io.h GFS2: Eliminate unused "new" parameter to gfs2_meta_indirect_buffer 2012-05-11 10:19:23 +01:00
ops_fstype.c dlm for 3.5 2012-05-22 19:31:38 -07:00
quota.c GFS2: Fold quota data into the reservations struct 2012-06-06 11:20:22 +01:00
quota.h vmscan: change shrinker API by passing shrink_control struct 2011-05-25 08:39:26 -07: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: Fold quota data into the reservations struct 2012-06-06 11:20:22 +01:00
rgrp.h GFS2: Fold quota data into the reservations struct 2012-06-06 11:20:22 +01:00
super.c GFS2: Fold quota data into the reservations struct 2012-06-06 11:20:22 +01:00
super.h gfs: constify xattr_handler 2010-05-21 18:31:20 -04:00
sys.c gfs2: fix recovery during unmount 2012-05-02 14:19:12 -05:00
sys.h GFS2: dlm based recovery coordination 2012-01-11 09:23:05 +00:00
trace_gfs2.h GFS2: Add rgrp information to block_alloc trace point 2012-05-11 10:31:34 +01:00
trans.c GFS2: eliminate log elements and simplify 2012-05-02 09:14:36 +01:00
trans.h GFS2: Extend the life of the reservations 2012-06-06 11:17:59 +01:00
util.c GFS2: Clean up log write code path 2012-04-24 16:44:34 +01: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 GFS2: Fold quota data into the reservations struct 2012-06-06 11:20:22 +01:00
xattr.h sanitize xattr handler prototypes 2009-12-16 12:16:49 -05:00