GFS2: Don't brelse rgrp buffer_heads every allocation
authorBob Peterson <rpeterso@redhat.com>
Fri, 5 Jun 2015 13:38:57 +0000 (08:38 -0500)
committerBob Peterson <rpeterso@redhat.com>
Fri, 19 Jun 2015 12:40:22 +0000 (07:40 -0500)
commit39b0f1e9290880a6c905f639e7db6b646e302a4f
tree6076698c4f876af5e3228690f53346a57accd801
parente7ccaf5fe1590667b3fa2f8df5c5ec9ba0dc5b85
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>
fs/gfs2/glops.c
fs/gfs2/rgrp.c
fs/gfs2/rgrp.h