diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2011-04-14 16:50:31 +0100 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2011-04-20 09:01:17 +0100 |
commit | f42ab0852946c1fb5103682c5897eb3da908e4b0 (patch) | |
tree | 3847b23d2cac6bab422e6e001e0c6d6c66a81f1e /fs/gfs2/inode.h | |
parent | 627c10b7e471b5dcfb7101d6cc74d219619c9bc4 (diff) | |
download | op-kernel-dev-f42ab0852946c1fb5103682c5897eb3da908e4b0.zip op-kernel-dev-f42ab0852946c1fb5103682c5897eb3da908e4b0.tar.gz |
GFS2: Optimise glock lru and end of life inodes
The GLF_LRU flag introduced in the previous patch can be
used to check if a glock is on the lru list when a new
holder is queued and if so remove it, without having first
to get the lru_lock.
The main purpose of this patch however is to optimise the
glocks left over when an inode at end of life is being
evicted. Previously such glocks were left with the GLF_LFLUSH
flag set, so that when reclaimed, each one required a log flush.
This patch resets the GLF_LFLUSH flag when there is nothing
left to flush thus preventing later log flushes as glocks are
reused or demoted.
In order to do this, we need to keep track of the number of
revokes which are outstanding, and also to clear the GLF_LFLUSH
bit after a log commit when only revokes have been processed.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/inode.h')
-rw-r--r-- | fs/gfs2/inode.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/fs/gfs2/inode.h b/fs/gfs2/inode.h index 099ca30..842346e 100644 --- a/fs/gfs2/inode.h +++ b/fs/gfs2/inode.h @@ -106,7 +106,6 @@ extern struct inode *gfs2_ilookup(struct super_block *sb, u64 no_addr); extern int gfs2_inode_refresh(struct gfs2_inode *ip); -extern int gfs2_dinode_dealloc(struct gfs2_inode *inode); extern int gfs2_change_nlink(struct gfs2_inode *ip, int diff); extern struct inode *gfs2_lookupi(struct inode *dir, const struct qstr *name, int is_root); |