GFS2: move toward a generic multi-block allocator
authorBob Peterson <rpeterso@redhat.com>
Fri, 18 Nov 2011 15:58:32 +0000 (10:58 -0500)
committerSteven Whitehouse <swhiteho@redhat.com>
Mon, 21 Nov 2011 10:04:09 +0000 (10:04 +0000)
commit6e87ed0fc93ffbe2aec296e6912b1dcb19034d6c
tree4f4ac522d34f35de3e3671996ddc35977aaa49ad
parent4442f2e03ed9646664c94e197e637b03324a6664
GFS2: move toward a generic multi-block allocator

This patch is a revision of the one I previously posted.
I tried to integrate all the suggestions Steve gave.
The purpose of the patch is to change function gfs2_alloc_block
(allocate either a dinode block or an extent of data blocks)
to a more generic gfs2_alloc_blocks function that can
allocate both a dinode _and_ an extent of data blocks in the
same call. This will ultimately help us create a multi-block
reservation scheme to reduce file fragmentation.

This patch moves more toward a generic multi-block allocator that
takes a pointer to the number of data blocks to allocate, plus whether
or not to allocate a dinode. In theory, it could be called to allocate
(1) a single dinode block, (2) a group of one or more data blocks, or
(3) a dinode plus several data blocks.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/bmap.c
fs/gfs2/dir.c
fs/gfs2/inode.c
fs/gfs2/rgrp.c
fs/gfs2/rgrp.h
fs/gfs2/xattr.c