summaryrefslogtreecommitdiffstats
path: root/fs/gfs2/rgrp.h
diff options
context:
space:
mode:
authorBob Peterson <rpeterso@redhat.com>2015-06-05 08:38:57 -0500
committerBob Peterson <rpeterso@redhat.com>2015-06-19 07:40:22 -0500
commit39b0f1e9290880a6c905f639e7db6b646e302a4f (patch)
tree6076698c4f876af5e3228690f53346a57accd801 /fs/gfs2/rgrp.h
parente7ccaf5fe1590667b3fa2f8df5c5ec9ba0dc5b85 (diff)
downloadlinux-stable-39b0f1e9290880a6c905f639e7db6b646e302a4f.tar.gz
linux-stable-39b0f1e9290880a6c905f639e7db6b646e302a4f.tar.bz2
linux-stable-39b0f1e9290880a6c905f639e7db6b646e302a4f.zip
GFS2: Don't brelse rgrp buffer_heads every allocation
This patch allows the block allocation code to retain the buffers for the resource groups so they don't need to be re-read from buffer cache with every request. This is a performance improvement that's especially noticeable when resource groups are very large. For example, with 2GB resource groups and 4K blocks, there can be 33 blocks for every resource group. This patch allows those 33 buffers to be kept around and not read in and thrown away with every operation. The buffers are released when the resource group is either synced or invalidated. Signed-off-by: Bob Peterson <rpeterso@redhat.com> Reviewed-by: Steven Whitehouse <swhiteho@redhat.com> Reviewed-by: Benjamin Marzinski <bmarzins@redhat.com>
Diffstat (limited to 'fs/gfs2/rgrp.h')
-rw-r--r--fs/gfs2/rgrp.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/gfs2/rgrp.h b/fs/gfs2/rgrp.h
index 68972ecfbb01..c0ab33fa3eed 100644
--- a/fs/gfs2/rgrp.h
+++ b/fs/gfs2/rgrp.h
@@ -36,6 +36,7 @@ extern void gfs2_clear_rgrpd(struct gfs2_sbd *sdp);
extern int gfs2_rindex_update(struct gfs2_sbd *sdp);
extern void gfs2_free_clones(struct gfs2_rgrpd *rgd);
extern int gfs2_rgrp_go_lock(struct gfs2_holder *gh);
+extern void gfs2_rgrp_brelse(struct gfs2_rgrpd *rgd);
extern void gfs2_rgrp_go_unlock(struct gfs2_holder *gh);
extern struct gfs2_alloc *gfs2_alloc_get(struct gfs2_inode *ip);